Skip to main content

Full text of "GPGL: a model interactive, general purpose graphic language."

See other formats


r 



GPGL: A MODEL INTERACTIVE, GENERAL 
PURPOSE GRAPHIC LANGUAGE 



James Dale Beans 



m 



m 



NAVAL POSTGRADUATE SCHOOL 

Monterey, California 






THESIS 




3PGL: 


A MODEL INTERACTIVE, GENERAL 
GRAPHIC LANGUAGE 

by 

James Dale Beans 
// 


PURPOSE 


Thesis 


Advisor: R.D. 


DeLaura 



December 1971 



Approved faon. pubtic k.qJLqji^<L', dib&ubiitLon u.ntaruJ:e.d. 



/4^ s/\$ 

DAMS' 



GPGL: A Model Interactive, General Purpose 
Graphic Language 



by 



James Dale Beans 
Major, United States Marine Corps 
B.S., United States Naval Academy, 1957 



Submitted in partial fulfullment of the 
requirements for the degree of 



MASTER OF SCIENCE IN COMPUTER SCIENCE 



from the 

NAVAL POSTGRADUATE SCHOOL 
December 1971 



ABSTRACT 

General Purpose Graphic Language (GPGL) is an inter- 
active language which is intended for both two-dimensional 
and three-dimensional displays. The thesis contains a 
survey of the attributes and capabilities of an interactive 
general purpose graphic language. The more popular general 
purpose graphic languages are compared and the results 
included. The system and user-defined functions (including 
the construction of user-defined functions) of GPGL are 
explained. The implementation of a subset of GPGL at the 
Naval Postgraduate School on an Adage AGT-10 graphics 
terminal is described. The main purpose of implementing a 
selected subset of functions from GPGL is to examine the 
tri-level hierarchy established within the components of 
the graphical display; the manner in which this hierarchy 
is implemented is addressed in the thesis. 



TABLE OF CONTENTS 

I. INTRODUCTION 6 

II. CONSIDERATIONS IN DESIGNING THE LANGUAGE 9 

A. THE DEVELOPMENT OF GRAPHIC LANGUAGES 9 

B. DEFINITION OF A GRAPHIC LANGUAGE 11 

C. A GENERAL PURPOSE VERSUS SPECIAL PURPOSE 
GRAPHIC LANGUAGES 14 

D. THE ATTRIBUTES AND CAPABILITIES OF A GENERAL 
PURPOSE GRAPHIC LANGUAGE 16 

E. A COMPARISON OF VARIOUS GENERAL PURPOSE GRAPHIC 
LANGUAGES 17 

1. Sketchpad 17 

2. Graphics Subroutine Package (GSP) 27 

o 

3. GRAF 28 

4 . GRAPHSYS 29 

5. Integrated Graphics System (IGS) 29 

6. Visual Interpretive Processing (VIP) 30 

7. Kulsrud's Model Language < 31 

F. DISCUSSION OF SYNTAX VERSUS SUBROUTINE APPROACH 
TO GRAPHICS 3 2 

III. GPGL, A MODEL INTERACTIVE, GENERAL PURPOSE GRAPHIC 
LANGUAGE 36 

A. AN OVERVIEW OF GPGL 36 

B. FUNCTIONS 41 

1. System Functions 42 

a. Primitives 43 

b. Manipulators 45 

c. Storage and Retrieval Functions 4 9 



d. Keyboard Device 51 

e. Analysis Functions 51 

f . Dimension Selection Functions 54 

g. Keyboard Mode Function 55 

2. User-Defined Functions 56 

a. User-Defined Instruction Set 57 

b. Teletype-System Commands 61 

c. Text-Editor Commands 63 

d. Examples of User-Defined Functions 65 

CZ, EXAMPLES OF THE USE OF GPGL . 68 

IV. IMPLEMENTATION OF GPGSY, A SUBSET OF GPGL AT 

THE NPS _!____ 73 

V A. OBJECTIVES _ 73 

B. THE IMPLEMENTED SUBSET 74 

V. CONCLUSIONS 85 

COMPUTER PROGRAM 88 

LIST OF REFERENCES 112 

INITIAL DISTRIBUTION LIST _J15 

FORM DD 1473 j 16 



ACKNOWLEDGMENT 

The author wishes to express his appreciation to 
William Thomas of the Electrical Engineering Computer 
Laboratory, Naval Postgraduate School for his time and 
patience in assisting in the utilization of the Adage 
Graphics Terminal. 



I. INTRODUCTION 

With the advent of the digital computer and the expansion 
of the multitude of applications for the computer, the field 
of "Computer Graphics" has become of prime importance. 
Computer graphics refers to the use of a display device 
(usually a cathode ray tube) with auxiliary devices connected 
on-line to a computer. The cathode ray tube or other dis- 
play device is used for graphic communications with the 
computer [1] . Computer graphics really came of age in 1963 
when Sutherland used his Sketchpad graphic system to 
demonstrate the designing of varions linkages and the 
analysis of the structural stress in a bridge. 

As the years have passed and the uses for computer 
graphics have increased at almost an exponential rate, the 
need for a graphic language or languages has increased 
proportionally, therefore, the number of graphic languages 
since Sutherland's demonstration of the feasibility of 
computer graphics has greatly increased in the last eight 
years. These graphic languages range from extensions of 
common high-level programming languages (e.g., FORTRAN, 
ALGOL, etc.) to many highly specialized graphic languages 
which are designed to be used in only one area of application 
Naturally, interest has been generated in general purpose 
graphic languages which could be used to assist in the many 
applications which require or use computer graphics. 



The purpose of this thesis is threefold: 

(1) To discuss certain, considerations taken into account 
in selecting and designing the model language; 

(2) To present General Purpose Graphic Language (GPGL) ; 

(3) To discuss the implementation of General Purpose 
Graphic System (GPGSY) , a basic subset of GPGL. 

It was determined that GPGL would be, as much as possible, 
hardware independent. The only real hardware requirements 
in addition to a digital computer is that the hardware included 
a display device (general requirement for computer graphics) , 
which is normally a cathode ray tube, some type of input/ 
output attention device, (e.g., a light pen, mouse, joy stick 
etc.,) and a teletypewriter. Some type of input/output 
attention device and teletypewriter are normal components 
of a computer graphics system. It is intended that the 
GPGL be able to be implemented in its entirety (which will 
not be feasible in many cases because of the anticipated 
large core memory and/or auxiliary memory requirements) 
or partially implemented by selecting a desired subset as 
was accomplished at the Naval Postgraduate School. GPGL was 
designed to be extendable, meaning the user can develop more 
complex functions if he desires in accordance with his 
own programming skills. Lastly, GPGL is designed so that 
it can be utilized by students who have little or no pro- 
gramming experience or knowledge. 

The thesis is devided into three parts. First, this 
thesis deals with the considerations taken into account in 



determining GPGL, This includes a brief look at the 
development of graphic languages, what a graphic language 
is, and the more important attributes required of a general 
purpose graphic language. The latter includes a selection 
of the graphic capabilities which are required in a graphic 
language. The second part covers the functions of GPGL 
with the necessary description of what the specific functions 
accomplish, the inputs required for the function, and ex- 
amples demonstrating how the language could be used. The 
last section deals with the implementation of QPGSY, an 
actual subset selected from GPGL, the directions for the 
use of the GPGSY, some examples of its use, and some of the 
more important matters considered in the implementation 
phase. The Computer Program used to accomplish the 
implementation is appended for further reference. 



II. CONSIDERATIONS IN DESIGNING THE LANGUAGE 

A. THE DEVELOPMENT OF GRAPHIC LANGUAGES 

Graphic languages have not developed as rapidly as the 
more familiar programming languages. Probably the first 
uses of graphics were made in the early 1950' s with the 
Whirlwind computer. In 1955, the APT (Automatically Programmed 
Tools) language was demonstrated on the Whirlwind. Even 
though APT is a specialized programming language, it does 
have the ability to be used in conjunction with computer 
graphics [2] . After 19 57 when FORTRAN became popular as 
a normal programming language, and as computer graphics 
grew, it was natural for FORTRAN to be extended for computer 

o 

graphics. This was done through the language GRAF 13]. As 
ALGOL became popular it was also extended for computer 
graphics under the name AED (ALGOL Extended For Design) [4] . 
Still in the development states at The Rand Corporation is 
an extension to a conversational subset of PL/I which could 
be used for computer graphics. The latter would give the 
user the ability to program in a conversational mode in 
the more powerful PL/I language [5]. 

An even more popular approach was the development of 
system graphic subroutines. At first these were designed 
to be used exclusively with FORTRAN. Examples of these are 
GSP [6] and DISPLAYTRAN 17] . IGS (Integrated Graphics 
System) was developed by The Rand Corporation and is a 



subroutine package which the user can use with FORTRAN, PL/I 
or any of the other languages which have standard IBM 
Operating System/360 linkages [8]. 

Many other graphic languages were developed independently 
from the normal high-level programming languages. The early 
computer graphics system took the direct approach to 
"syntactic" representation, that is the display itself 
constituted sufficient representation 19] . As such, the 
dynamic graphical languages of SKETCHPAD 110] and CADET 
(Computer Aided Design Experimental Translator) [11] had a 
syntax of FUNCTION, BUTTONl, FUNCTION, BUTTON2 where 
FUNCTION was the selection of a function and BUTTON was the 
designation of the parameters of the function. This type 
of description was hard =to explain and understand and is 
obviously very hardware-oriented. CADET is of interest 
because it demonstrated for the first time that a dynamic 
graphical language could be handled in the same manner as 
a verbal programming language. By developing a data 
structure of the binary tree type and by using a precedence 
table with many precedence pointers, the originators of 
CADET illustrated they could display a picture from data 
structure information. They showed that the process of 
constructing a display list to generate a display on a CRT 
from a data structure is analogous to the generation by a 
compiler of specific machine code instructions from source 
code statements [11] . More recently, graphic languages 
have also used metacompilers, compilers, interpreters, and 



10 



subroutine calls. The question of which to use will be 
examined in more detail later. 

Many specialized graphic languages have been developed 
to handle specific application areas. CAFE is a language 
which was specifically designed to be used in the making of 
motion pictures and uses SNOBOL to handle the conversational 
mode between the user and the computer and to construct the 
data structure. FORTRAN is used to process the final data 
structure and perform the perspective transformations [12] . 
BUGSYS 113] and PDL 114] are languages or systems specifically 
designed to analyze and process pictures. These are just 
two of many specialized languages. 

Only a few general purpose languages have been developed 
independently from the High-level programming languages. 
One of these languages was developed by Kulsrud ~%5] . 
Kulsrud's language is not only designed to construct dis- 
plays, but is specifically designed to handle both topological 
and pictorial analysis. Kulsrud's general purpose language 
with its metacompiler is a good representative language of 
the present state of the art. 

B. DEFINITION OF A GRAPHIC LANGUAGE 

In the preceding paragraphs numerous references have 
been made to graphic languages which actually refer to 
graphic systems in toto (e.g., Sketchpad, IGS) . In another 
case a translator,- CADET, was referred to as a language. 
This ambigious definition of a graphic language is common 



11 



throughout the field of computer graphics. Morrison states: 

"The term "graphic language" has been used 
ambiguously, in the literature, to describe 
at least three different types of language 
used in graphic processing. 

1. The input stream is in the form of 
actions taken by a console operator. 

a. draw with light pen 

b. type names and numbers 

c. push buttons 

d. light pen references of objects 
on the screen 

A language translator translates these actions 
into invocations of appropriate procedures. These 
procedures perform requested actions and pro- 
vide displayed feed back to the user. 

2. Input is in the form of pictures exist- 
ing on film or other media. In this 
case, the language translator is a 
pattern recognizer which recognizes 
and extracts meaning from these pic- 
tures . 

3. A set of programming tools (functions 
and subroutines) are embedded in a 
"host" language (e.g. FORTRAN) . Using 
these tools lightens the load of the 
graphic system. " [16] 

When complete graphic systems are referred to, more than 
just the graphic language is included. Sketchpad, which is 
a program written for the TX-2 computer, is a complete 
system, not just a graphic language. It includes a com- 
plicated, ring-type data structure. The many different 
types and forms of data structures which can be used in 
implementing a graphic language comprise a separate subject, 
which is of sufficient importance and complexity to have 
warranted many studies in itself. But as Kulsrud stated, 
"Although the problem of data structure is a central one for 
graphics, it should not affect the graphic language design 
directly." Data structures are not a part of the graphic 



12 



language itself, but rather a component of a graphic system 
which is needed to implement the graphic language. Kulsrud 
further asserted that a complete graphic system would 
probably contain two or more different data structure 
types 115] . The Sketchpad system also makes use of the many 
buttons, knobs and toggle switches on the TX-2 computer. 
Although the order required in the selection of these hard- 
ware input devices determines the syntax of the dynamic 
graphic language used, the hardware and its input devices 
are not part of the actual language. Thus, when a graphic 
system is referred to, it implicitly determines a graphic 
language, but also includes additional components used to 
implement the language. Because of this, graphic systems 
are commonly referred to as graphic languages, and different 
graphic systems and graphic languages are often compared. 

In order to clarify the situation, the author has 
supplemented a dictionary definition of language to define 
a graphic language for computers. The definition is the 
following: "a set or system of symbols or operations which 
can be used in a more or less uniform fashion to describe, 
generate and manipulate graphic displays on an input/output 
device which utilizes a digital computer to accomplish the 
necessary processing." This definition is felt to be adequate, 
but it is recognized that many other suitable definitions 
could be written. 



13 



C. A GENERAL PURPOSE VERSUS SPECIAL PURPOSE GRAPHIC LANGUAGE 

There is some controversy whether one general pur- 
pose graphic language or many special purpose graphic 

languages are needed to accomplish the many and varied 

applications for computer graphics. Some leading scholars 

in the field believe that a specialized language is required 

for each application area if the graphic language is required 

for more than just drawing pictures 117] ; [16] . Others feel 

that a language of utmost generality should be developed 

that permits its own modification 118]. There is, however, 

general agreement that a general purpose graphic language 

should have the capability of accomplishing more than just 

drawing a picture. 

Since the uses for computer graphics are only 
limited by the imagination of man, any general purpose 
language, which was expected to be all-inclusive, would 
have to be used in the areas of computer-aided design, in 
drafting, in the design and analysis of electronic circuits, 
in the analysis of structural engineering, in numerical 
control in manufacturing, in the field of simulation, in 
the interpretation of pictures and the list would continue 
to grow on and on. 

Notely stated that any display can be drawn theoretically 
by just three basic drawing commands (draw, rotate and move) , 
but quickly adds that for most applications this method may 
be too cumbersome 119] . So, much more than just drawing 



14 



pictures is required and the applications are so varied 
that any one language that attempted to handle all applications 
would have to be either as basic as machine language, which 
is too cumbersome to use, or contain so many commands or 
procedures that it would take an extremely large storage 
capacity to implement. For example, Streit's VIP system 
which was designed only to draw displays took over 27,000 
60-bit words to implement. 

In the present state of the art, any so called high- 
level programming language, which is considered to be general 
purpose because it was designed to handle so many different 
areas of applications, such as PL/I, can not be efficiently 
or easily used for list processing, simulation and other 
specialized applications. Specialized languages have been 
developed to handle these more specialized applications. 
When a program is processed that utilizes only a small sub- 
set of the PL/I compiler, the efficiency, in regards to both 
time and storage of the utilization of the computer, is low. 
This is due to the fact that the PL/I compiler requires a 
larger amount of storage and takes longer to compile than 
many less complex compilers. All of the so-called general 
purpose, high-level programming languages, do have a common 
basic subset of capabilities which include data description 
and data transformation. In a similar manner, no one graphic 
language can be sufficiently general purpose to handle all 
applications. However, any general purpose graphic language 
(general purpose in the sense that the language can be used 



15 



with many varied applications! must have a basic set of 
required capabilities. To this subset of required 
capabilities, additional sets of supplementary capabilities 
are added, depending upon what specialized applications the 
language must handle. The required subset and these sup- 
plementary subsets then make up the graphic language. (See 
FIGURE 1.) 

D. THE ATTRIBUTES AND CAPABILITIES OF A GENERAL PURPOSE 
GRAPHIC LANGUAGE 

There are many different attributes and capabilities of 
a general purpose graphic language. The required subset of 
capabilities comprise those that are required while the 
supplementary subsets comprise those that are optional. The 
use or uses for which the language is designed is what 
determines what capabilities are included as optional. 

The basic requirements of a general purpose graphic 
language are: 

(1) Draw graphics 

(2) Manipulate graphics 

(3) Provide display management 

The most elementary requirement of a general purpose 
graphic language is that the language must describe and 
generate displays. In order to do this, the language must 
provide a capability of controlling the placement and in- 
tensity of points, line segments and possibly arc segments. 
In generating displays there are several different primitives 
which have to be considered. The basic building block 



16 




GRAPHIC LANGUAGE 



FIGURE 1 



17 



is the line segment which is referred to as a line. Since 
the user of computer graphics is not beyond making a mis- 
take, some means of correcting the mistake is needed. A 
complete blanking of the display with a start from scratch 
requirement is much too harsh and unforgiving, so an erase 
capability is mandatory. Titles, labels and numerical values 
are often used to amplify and explain displays so a means 
of entering text into a display is required. Since arcs, 
curves and circles are used frequently and generating them 
becomes such a tedious programming task, an arc, function is 
a courtesy that the author feels every graphic system should 
provide. Therefore, the needed primitives which should be 
included in the subset of required capabilities are: 

LINE 
ARC 
ERASE 
TEXT 

The language must give the user the ability to manipulate 

the displays by rotation and translation. In order to 

rotate a display efficiently, a rotation capability should 

be provided by the language. It is possible for the 

programmer to construct a program that accomplishes the 

rotation by drawing the component of the display in its new 

rotated position or, in the case of dynamic rotation, in 

incremental positions until the final position is reached. 

However, this defeats the purpose of a high-level programming 

language, which is. to assist the user by easing the programming 

burden. A translation capability should also be provided 



18 



for the same reason. Both translation and rotation require 

some axis or point from which the objects can move or rotate. 

Some type of anchor point or reference point must be 

established, either by default or by selecting some specific 

point. Therefore, the graphic language should have the 

capability of selecting and changing this reference point. 

The required manipulators are: 

ROTATE 
TRANSLATE 
REFERENCE POINT 

In order to properly and efficiently handle, displays and 
their components, the language must provide for the rearrange- 
ment, merging, searching and sorting of the components of a 
display. A means of retaining and recalling more than one 
display is required for convenience and completeness. In 
order to provide a minimum capability in display management 
the following processes or functions are required: 

STORE 
FETCH 
NAME 

These capabilities are the functions that form the re- 
quired subset of any general purpose graphic language and 
as such are just the basic necessities of the language. 

The main optional attributes and capabilities of a 
general purpose graphic language are: 

(1) Be interactive 

(2) Provide hierarchial levels within the display 

(3) Provide an easy method of reproducing components 
within a display 



19 



(4) Provide a flexibility that eliminates extensive 
preplanning 

(5) Provide an interpretative capability 

(6) Provide for the -utilization of algorithms 

(7) Provide a choice of data input 

(8) Provide a three-dimensional capability 

For most applications, one of the most desired attributes 
of a general purpose graphic language is that it be inter- 
active. For example, computer-aided design, which can in- 
clude all types of creative design, is one of the most 
popular uses for computer graphics. In order to efficiently 
utilize computer graphics in this manner, it is necessary 
for the graphic language to be interactive. If the language 
is not interactive, the 'creativity of the human is greatly 
limited. The required time lapse between input, result and 
input will cause the user to lose his concentration on the 
subject. In many cases the user might be required to work 
on a different problem or application between inputs in 
order to efficiently utilize his time. To be truely inter- 
active, the language must not only have a rapid response, 
but must also be forgiving if the user commits an error. 
If the remedial action required is too complex or time 
consuming, the interaction between the user and the system 
will be lost. The language can not be too complex or hard 
to learn for the same reason. The language should be open- 
ended (its capabilities easily extended) . If the user 
arrives at a situation which he can not handle explicitly 



20 



within the capabilities of the language, there should be 
a means to extend the language through some programmable 
feature which should allow the user to maintain continuous 
thought while he implements the necessary extension. 

The language should establish hierarchial levels among 
the various component parts of the display. This permits 
the user to allow the various levels to have specific 
characteristics (e.g., dynamic rotation of all components 
at one level or a specific intensity setting for all com- 
ponents below a component at a higher level) . This 
capability would permit a display to depict a vehicle, 
which has wheels of two different sizes, in motion. The 
different sized wheels would be rotating at different 
speeds while the vehicle moved across the display. The 
number of levels that should be permitted is a moot point, 
but most scholars are in agreement that the language 
should be multi-level [9;15]. 

It is necessary for the general purpose graphic language 
to have an efficient method of reproducing components of a 
display since many displays contain elements which are 
similar except in size and/or location. When dealing with 
hardware which is limited to straight line segments, it is 
often necessary to approximate a circle with hundreds of 
small line segments. For the user to do this each and every 
time a circle is required, is a very inefficient method. The 
most efficient way of reproducing components is normally 



21 



through subroutines or procedures; therefore, it is 
necessary that a general purpose graphic language have this 
capability. 

An important capability to a graphic language is that 
of providing enough flexibility within the language to 
eliminate any extensive prior planning. The present batch- 
type operating system in normal computer processing requires 
complete prior planning. This is not desirable and can not 
be accomplished in many computer graphics applications. 
As Chen and Dougherty state, "In interactive problem solving, 
unanticipated situations frequently arise that make complete 
preplanning difficult or impossible." 120] Gaglians and his 
co-authors assert: 

"Thus, effective use of graphics devices for 
interactive problem solving requires some 
means for requesting that a data processing 
system perform functions not anticipated at 
the beginning of the problem solving process." 
[7] 

The flexibility is needed because in most cases the user 
will create or design some new display. In many cases the 
user will have very few preconceived ideas and will tax the 
imagination in creating a display. The freedom from pre- 
planning every construction is critical in interactive 
computer graphics. The user often does not know exactly 
what steps to take while creating a display so the user can 
not always create a normal type program prior to the ex- 
ecution phase. One way of providing this flexibility is to 
permit the user to return to a common point in the processing 



22 



which allows the branching to many, if not all, the funct- 
tions or processes provided by the language. 

Some graphic languages restrict the user to only con- 
structing displays, (e.g., DRAWL 121] and VIP [9]). This 
restriction severely limits the use of these languages. As 
Roberts stated, 

"However, the ability to make pictures is not 
sufficient in itself; the pictures must be re- 
presentative of data which needs computation 
such that the graphics system is used as an 
input/output tool, not merely as a display ." [17] 

By having the capability to interpret displays ,the computer 
can be utilized more effectively. There are several dif- 
ferent ways a display can be interpreted. The most obvious 
is by topological analysis (i.e., analyzing the relation of 
one subelement of a display with respect to another) . An- 
other type of analysis is that which examines and locates 
special features in pictures (which the present state of the 
art normally handles through a digital photograph scanner 
[15] . It is desirable that a general purpose graphic 
language have the capability to handle elementary topological 
analysis from which more sophisticated analysis can be pro- 
grammed. 

Most users desire the capability of specifying algorithms 
in order to provide a more dynamic flexibility in the 
operation of the display console. By having this capability 
the user can use conditional statements, do-loop sequences 
and arithmetic statements. The capability is also important 
when the user is programming the display device primarily 
as an output device. 

23 



Some languages require certain data inputs only through 
a light pen or other attention devices, while others re- 
quire the same data input solely through a keyboard device. 
Often the type of input device or devices are limited by 
the funds available to the computer installation for pur- 
chasing hardware. In other cases data may be more easily 
entered by one means than another. Therefore, it is de- 
sirable that the language permit the user the option of 
choosing the desired method of input. 

Numerous uses of computer graphics are more suited to 
three-dimensional viewing than two-dimensional viewing. The 
work of Johnson, as demonstrated by Sketchpad III [22] , and 
Roberts [23] have shown that it is possible to effectively 
use computer graphics in a three-dimensional representation. 
Rotation, magnifications, translation and perspective trans- 
formations can be accomplished by a single 4X4 matrix 
developed by Roberts [23] . The implementation of the three- 
dimensional aspects of a graphic language is a subject 
worthy of a complete study in itself. For extremely complex 
displays, such problems as determining hidden lines are too 
costly in computer time and storage to make three-dimensional 
displays practical. These problems can be circumvented 
by using wire frame displays or making some other compromise. 
If a three-dimensional capability is needed additional 
capabilities should be provided. Hidden or invisible lines 
should be available to the user to fully develop a display. 
This capability provides the user with the ability to have 



24 



objects appear as they do in real life (with their hidden 
lines) , yet any analytic routines can operate on the complete 
object. A dash-line function often assists the viewers of 
a three-dimensional display to get a proper perspective 
because the user can dash the hidden lines. Three- 
dimensional representation has proven not only to be very 
effective, but also to increase greatly the creativity of 
the user. 

These optional capabilities form supplementary subsets 
which can be added to the subset of required capabilities 
as needed. Other specialized capabilities can also be 
added for more specialized applications. (See FIGURE 1.) 

E. A COMPARISON OF VARIOUS GENERAL PURPOSE GRAPHIC 
LANGUAGES 

A comparison of some of the more interesting general 
purpose graphic languages is shown in Table 1 and is 
amplified in the following paragraphs. 

1 . Sketchpad 

Although Sketchpad was created in 1963 it has many 
features that few, if any language, explicitly provides. At 
the touch of a button, lines can be made perpendicular, 
parallel, or be manipulated to meet other constraints. A 
"lock on" feature is provided that permits the user to 
terminate a line segment exactly upon intersecting another 
component. Pictures and subpictures provide hierarchial 
levels for the system. Points can be designated as attach- 
ment points on subpicture components; moreover, the 

25 

























CO 


>i 
























rH 


■P 




















£ 




CD 


-H 






Z 


2 




s 




z 




-M 




> 


rH 


COMPLEMENTARY 




s 


g 




s 




i 




•H 
5 




CD 

rH 


•H 


LANGUAGE 


w 


Eh 


E-i 




Eh M 


W 


Eh 










rd 




2 


0? 


Pi 


Q Q 


« \ 


S 


« Q 




C 




rH 


a 




o 


o 


o 


fa < 


O J 


o 


o < 









rd 


rd 




2 


fa 


fa 


< S 


fa fa 


s 


fa S 
fa 




•H 
■P 
O 
C 
P 
■n 


CD 
CT 

cd 


•H 

x: 
u 

rH 

rd 

U 


O 

fa! 


EXTENDABLE 


O 




o 


o 


O 








C 


P 


CD 


a> 




S3 


s 


a 


s 


Z 


fa 


fa 







Cn 


•H 


> 




















u 


C JC 


rd 






















fd 




A 






«-N 


^-^ 












C r- 








J 


j 












•H 







+J 


HARD COPY 


w 


fa 


fa 


fa 


fa 


w 


H 







u 

rd 


U 

CD 


O 






















-P fal 


co 






«~. 


*— » 


<— » 


*-% 








>1 p 


g 13 


CD 






i-3 


fa; 


fa 


fa 








,Q 


CD 


3 CD 


O 


CONSTRAINTS 




















E2£-d 




w 


fa 


fa 


fa 


fa 


fa 


fa 




13 
<1) 


CD 

rH 


CO 
1 -H 


QJ 




















13 


0,0 rH 


tn 




















•H 


6HJ 


rd 


PICTURE 


o 


O 


o 


O 


O 


o 






> 





u 


rd 
U +J 



cn 


ANALYSIS 


S3 


2 


s 


Z 


S 


z 


W 




fa 


rd 


cn 


Pi 

rd 

fa 




















1 




ro 




TOPOLOGICAL 












o 






fa 




*» 


I 
O 


ANALYSIS 


g 


s 

fa 


s 

c 

fa 


S 


fa 


z 


fa 




a) 




rsj 


Z rH 

fa 
fa 
fa 


HIERARCHY 




— ' 


— 


o 


— * 








(d 






< 




CN 


fa 


A 


rH 


fa 


CO 


CN 




P! 






rH Eh 
rd 

e 

•H 


HIDDEN 


O 


2 






fa 


O 


O 




rH 




«d 


•H 


LINES 


Z 


fa 


w 


w 


fa 


S3 


Z 




CD 
4-> 




a; 


£ 






















i 


rd 






*~^ 


^-^ 




.. — . 












rd 








fa 


fa 




fa 








>i 




n 





COPY 




— ' 


— ' 




*-* 








X! 




CT 


-P 




fa 


fa 

fa 


fa 


fa 


fa 

2 


w 


w 




13 

CD 

13 

•rH 






u 

Cn 


13 
CD 
13 
•H 


ROTATE 


W 


fa 


fa 


fa 


fa 


fa 


fa 




> 



u 




•H 

a) 


> 

U 


ARC or 




2 


2 












rH 




UH 




>i 


CIRCLE 


fa 

Q 

< 

fa 


fa 


fa 


fa 

CO 


w 


w 


fa 
a 


a 

z 
w 

w 


4-> 
•H 
U 
•H 
rH 

a, 




CD 

rH 

,Q 

rd 

rd 


apabili 
egree 




a 






CO 






D 


j 


w 




U 


U 13 




u 






rn 






fa 















Eh 




fa 


fa 






CO 


cq 


1 




1 


1 




fa 


■ A 


<£ 


<j 


CO 


fa 


J 


§ 


w 




fa 


a 




fa 


CO 


fa 


k 


a 


M 


D 


>H 












CO 


u 


o 


o 


H 


> 


fa 


CO 











26 



components can be joined at these selected positions. A 
component can be copied at the touch of a button. These 
are just a few of the many sophisticated features provided 
by Sketchpad. Sketchpad is a complete graphic system. It 
was specifically designed for the TX-2 computer. The input 
statements are completely hardware dependent and the 
language established by these statements can not be extended 
without a major change to the system. Sketchpad provides 
a graphic system with many unique features to the user. But 
even more important is the fact that it established the 
feasibility of computer graphics to the world [10] . 
2 . Graphics Subroutine Package (GSP) 

GSP consists of some basic subroutines which give 
the user a very elementary graphics capability. A simple 
program which does nothing but construct an arc becomes a 
relatively complicated task in GSP. Since GSP is designed 
to be used with FORTRAN, most graphic functions are obtain- 
able by brute force programming. More recent developments 
permit GSP to be used in conjunction with COBOL or PL/I. 
The general form is CALL NAME (PARAMETER1, PARAMETER2 , etc.) 
which is quite unwieldly when many parameters are required. 
GSP with the usual version of FORTRAN is more effective as 
a language that uses the display screen as an output device 
since all input device signals must be anticipated when the 
FORTRAN program is written. As previously discussed, many 
applications of computer graphics can not be pre-planned, 
so in many cases the input device signals can not be 



27 



anticipated. This drawback to GSP can be over come with the 
use of an incremental compiler or interpreter as was done 
with DISPLAYTRAN 17] . With interpretive FORTRAN execution, 
the attention device signals can be anticipated as the 
need for their use occurrs and no extensive pre-planning 
is required 124] . 
3. GRAF 

GRAF provides basically the same capabilities 
provided by GSP with the exception that GRAF is an extension 
of FORTRAN, thus used exclusively with FORTRAN. One ad- 
vantage of GRAF is that subroutine calls with their many 
parameters are avoided. As the authors of GRAF state, 
"Further, we feel that coding, debugging and simply under- 

a 

standing the logic of a program from its listing are all 
made much easier by avoiding CALL statements with long 
argument lists for frequently needed graphic routine." [3] 
Both GRAF and GSP were an attempt to ease the burden of 
programming on the graphics user. Since FORTRAN was pro- 
bably the most commonly used programming language at the 
time, it was felt that by allowing the user to program in 
FORTRAN it would be easier for him than requiring him to 
learn a completely new language for graphics. An incremental 
compiler or interpreter should be used with GRAF because 
the same problem arises handling attention signals in GRAF 
as was described for GSP (i.e., the attention signals must 
be anticipated) 13] . 



28 



4. GRAPHSYS 

GRAPHSYS is a set of procedures or subroutines 
which is written in AED. Although GRAPHSYS was specifically 
designed for use at the Electronic Systems Laboratory, MIT, 
it is not as hardware dependent as Sketchpad since AED is 
a machine-independent language. GRAPHSYS could be implemented 
without many major modifications at other installations with 
adequate computer hardware. GRAPHSYS is part of a larger 
time-sharing system which is the mode that many graphics 
systems will use in the future. GRAPHSYS has many interest- 
ing features which are intended to ease the programming bur- 
den on the user. These include specific functions to ac- 
complish such things as drawing a circle, making a copy 

o 

and constructing hidden lines. A hierarchial level is pro- 
vided among the components of a display. The language per- 
mits a depth of ten levels referred to as subpictures. These 
give the user a great deal of flexibility in constructing 
his display. GRAPHSYS was specifically designed to handle 
three-dimensional graphics so hidden lines and other functions 
needed with a three-dimensional display are available [4] . 

5 . Integrated Graphics System (IGS) 

IGS is a graphic system which is hardware independent, 
although implemented on the IBM 2250 graphic display console. 
It can be used with any language which has OS/360 linkages 
(e.g., FORTRAN, PL/I, Simscript 1.5 and OS/360 assembly 
languages) . IGS is composed of many procedures or subroutines 
designed to handle the graphic functions necessary in 



29 



creating and manipulating the. graphic displays. Calls to 
IGS routines are made from within the user's program. 
Parameters are handled either by the normal passing with the 
call or by using a special parameter array (200 locations) . 
This array contains what could be considered the default 
values of the parameters in question. Since IGS provides 
only the elementary graphic functions, a user is required 
to write a rather complex program to construct even simple 
displays. For example constructing a simple circle would 
be a tedious task. An incremental compiler or. interpreter 
should be used because attention device signals have to be 
anticipated or they will be ignored as was the case with GSP 
and GRAF [8] . 

6 . Visual Interpretive Processing (VIP) 

VIP is also a complete graphics system which was 
designed solely to draw displays; therefore, it does not 
qualify as a true general purpose graphic language. It is 
an interesting graphic system because it allows almost com- 
plete flexibility to the user. Little or no programming 
experience is required to use the system; yet more 
sophisticated programs can be constructed through "programmed 
functions" which are developed by the user at the display 
console. The complexity and sophistication of these pro- 
grammed functions depends on the programming expertise of 
the user. A function interpreter carries out the execution 
of both the programmed and system functions. The interpreter 
fetches the code of the programmed functions into core, 



30 



permits nested functions by utilizing a stack, and handles 
various error conditions Ci.e., infinite looping and illegal 
addressing) . Attention device signals can be handled as 
they occur, which eleiminates the requirement to pre-plan 
the signals. This technique gives the user great flexibility 
in designing a display. The system is relatively hardware 
independent and provides two hierarchial levels. An 
algorithmic program can be developed through the programmed 
function capability [9] . 

7 . Kulsrud's Model Language 

Kulsrud's model graphic language is felt to be a 
true/ general purpose language, designed to describe, generate, 
manipulate and analyze displays. In Kulsrud's article, he 
discussed only a typewritten version of his language, but 
he explained that this is done for convenience and to 
facilitate understanding. He states that this version could 
be translated to suit the graphic equipment available using 
light pen and control button sequences. Kulsrud included 
the basic statements necessary to conduct both topological 
and other forms of picture analysis. He did not design his 
language to be used with three-dimensional displays which 
is a limitation. Kulsrud used a metacompiler, which used 
incremental compilation, to produce interactive graphic 
programs. This permits immediate testing of language syntax 
on a line by line > basis and the immediate detection of most 
typographical errors. Kulsrud's language has three 



31 



hierarchial levels and was designed to be used in con- 
junction with the normal high-level programming languages, 
FORTRAN and MAD 115] . 

F. DISCUSSION OF SYNTAX' VERSUS SUBROUTINE APPROACH TO GRAPHICS 

In the previous discussion of graphic languages and 
their implementation, there were basically two approaches 
used to implement the languages. Either a series of sub- 
routine calls with their required parameters are made to 
graphic procedures stored in a library, or a syntax for the 
graphic language is specified and then the language is com- 
plied or interpreted by standard techniques. In the latter 
case some programs are compiled as an entire program while 
others are compiled line at a time by an incremental com- 

c 

piler. Since an interactive mode is desired, compilation 
should be on a line at a time basis. This was the method 
used in Kulsrud's graphic system [15]. When using sub- 
routines to accomplish the graphic functions, some systems 
compile the subroutines prior to storing them so they are 
available in machine code for execution as the user desires. 
Other systems store the subroutines in their high-level 
language and then compile the routines with the entire pro- 
gram as they are called. The more desirable method is to 
compile the subroutines prior to storing them in order to 
decrease the time required to execute the procedure. This 
capability may involve dynamic loading with its overhead. 



32 



When considering the user inputting statements and/or 
data via the display console, either method has the capability 
to utilize attention devices (e.g., light pen, Rand tablet, 
mouse, etc.) to a maximum, keeping typewritten inputs to a 
minimum. It is usually more natural and quicker to point 
a device at a location on the display to determine the 
position of a point, rather than calculating the desired 
coordinates and then typing the coordinates into a type- 
writer. If the attention devices are used to the maximum, 
it is irrelevant to the user, inputting the information via 
the display console, whether the subroutine or syntax approach 
is being used. 

If, on the other hand, the user is inputting statements 
and/or data via some non-graphical input device, which 
method used does become of interest. As previously mentioned, 
using subroutine calls with the many required parameters is 
quite unwieldly at times. However, the subroutine approach 
is usually more easily extended than the syntax method. 
Normally a subroutine can be programmed and placed in the 
system library more easily than the incremental compiler 
can be changed in the syntax method. This drawback to the 
syntax approach has been largely overcome by the metacompiler 
which makes the necessary changes to the graphic compiler 
as implemented by Kulsrud [15J . 

The subroutine approach is often more flexible because 
the subroutines may be used with many different languages. 
In considering the more recent syntax type graphic languages, 



33 



some of them have been designed to be implemented in con- 
juction with several high-level programming languages. 
Graphic languages, in general, can be specified by 
their syntax as demonstrated by Morrison 116] and others. 
The syntax approach normally has a smoother program flow 
than that of the subroutine method. Both approaches have 
advantages and disadvantages; thus, the determination as 
to which method should be used should be decided on an 
individual basis for each computer installation. At an in- 
stallation where the core memory is limited to .such a degree 
that only a very carefully selected subset of a general pur- 
pose language can be implemented, the subroutine approach 
has a decided advantage. The selected subroutines can be 
implemented in a very basic language (i.e., assembly 
language or machine language) ; therefore, no large amount 
of storage is required for an incremental metacompiler, 
incremental compiler or interpreter as is the case of the 
syntax approach. Even if the sophisticated compiler is to 
be paged in and out of core memory, the increased complexity 
of the resident monitor will increase the storage required 
by the monitor which reduces the core memory available for 
the user. In the case of a large computer graphic installation 
(at least large in storage capacity) , a syntax approach with 
its algorithmic-programming capability has an advantage be- 
cause of the smoothness and flexibility that this method 

» 

provides . 



34 



In comparing the installation where each approach could 
be implemented, the syntax method is the more difficult. 
Normally a system using the syntax method will require the 
services of a system programmer in order to program and 
maintain the required software. The subroutine approach 
can usually be programmed and maintained by the user so there 
is no necessity to hire a system programmer. The speed of 
execution is normally greater in the subroutine approach 
since the subroutines can be compiled into machine code 
and stored prior to execution. 



35 



III. GPGL, A MODEL INTERACTIVE, GENERAL PURPOSE GRAPHIC 

LANGUAGE 

GPGL contains both the attributes which are required 
of a general purpose language and many of those that are 
optional. It includes the option of selecting two-dimensional 
or three-dimensional displays, the option of attention 
device inputs or keyboard device inputs, and the capability 
of constructing algorithmic programs. In addition, the 
language is intended to be conversational (i.e., every users 
action is met with some action or response from the computer) . 
As previously mentioned the model could be implemented in 
its entirety or in a selected subset. Since the language 
is designed to handle most applications, it would require 
a great deal of memory storage if fully implemented; there- 
fore, it is envisioned that implementing a selected subset 
would be more practical for most computer facilities. 

A. AN OVERVIEW OF GPGL 

GPGL is designed to provide the user with two different 
types of functions with which the user can accomplish the 
desired tasks. These functions are called system functions 
and user-defined functions. The system functions are 
provided explicitly within the language (e.g., rotation, 
translation, etc.), while the user-defined functions are 
designed by the user to accomplish the specific process or 
processes desired. The user-defined functions are normally 



36 



programmed by the user through teletype-system and teletype- 
editor commands. The functions are built by using the 
many available system functions as the basic elements from 
which a program is constructed for each user-defined function, 
The program is compiled and the user-defined functions 
stored under a unique name awaiting call. 

The user accomplishes the desired tasks by first select- 
ing whether a two-dimensional or three-dimensional display 
(no mixed mode is permitted) is desired. Then the user 
selects a series of system and/or user-defined .functions 
from a "menu" (a list of optional choices) shown on the 
display console. The choice of how many and what functions 
are selected is basically determined by the user (some 
ordering is required by the language in respect to the in- 
put mode - attention device or teletype) which gives the 
user the necessary flexibility usually required in computer 
graphics as previously discussed. 

The language provides a tri-level hierarchial structure. 
The basic or lowest level is an image, which is a component 
of a subpicture. Subpictures in turn compose or form a 
picture. Theoretically, there is an unlimited number of 
images in a subpicture and an unlimited number of sub- 
pictures in a picture. In actuality the number of either 
is limited by the storage capacity of the hardware available 
and the actual restrictions created by the implementation 
of the language. These images, subpictures and pictures 
can be uniquely named, and then stored and retrieved 



37 



through their name. Although it is envisioned that three 
hierarchial levels should be sufficient for most applications, 
the language could be extended in hierarchial depth without 
too much difficulty. GPGL could be extended in a similar 
manner to that used in GRAPHSYS 14] . This extension, how- 
ever, would decrease the available user's storage capacity 
because of the need to store the necessary pointers and 
directories required to extend the hierarchial capability. 

To assist in the visualization of the hierarchial levels 
included in the display and to permit the user, to protect 
portions of the display that have been completed, a fore- 
ground and a background is established within the display. 
The foreground consists of the images which have not yet 
been stored in a subpicture (foreground makes up the current 
subpicture) while the background is composed of the sub- 
pictures which at the time make up the current picture. 
The primitives can effect only the foreground which pro- 
vides a degree of protection to the subpictures and picture 
composing the background. It is intended that when GPGL is 
implemented the background portion of the display appear 
with a lower intensity than the foreground to assist the 
user in visualizing the hierarchial levels. 

GPGL was specifically designed for some type of system 
which uses the subroutine approach to computer graphics in 
the implementation of the language. Specific teletype 
system commands were included that would permit programs 
written in other languages to be entered if the compiler in 



38 



the system could compile the other language or languages 
involved and store them as subroutines. GPGL could be used 
with a system which uses the syntax approach to computer 
graphics with some appropriate changes. These matters de- 
pend on the actual installation and the specific system used 
to implement the language. See the discussion of the syntax 
versus subroutine approach to computer graphs (paragraph II. 
F.) . 

When the user selects the three-dimensional mode, changes 
in the method of entering certain types of data are required. 
Since all locations in the viewer's space (three-dimensional 
space which the viewer would see if real objects were ob- 
served) have three dimensions it is necessary to enter three 
coordinates instead of the normal two. Different viewing 
conventions are required than those used in normal two- 
dimensional displays because the display screen is two- 
dimensional while the objects in the display are visualized 
in three dimensions. A convention implemented by Johnson 
with Sketchpad III is used [22], which includes three 
orthogonal and one three-dimensional perspective view. (See 
FIGURE 2.) It is envisioned that the system implemented 
would allow the user to increase the size of any of the 
four quadrants to fill the entire screen when selected. The 
four quadrants are not four independent displays, but are 
all interrelated so that an arc being drawn in one view is 
displayed in the other three. GPGL was designed to be 
implemented by using the three-dimensional, homogeneous 



39 




QUADRANT II 
TOP 




QUADRANT III 



FRONT 




QUADRANT I 
PERSPECTIVE 



QUADRANT IV 



X 



Y 

■* z 



RIGHT SIDE 



FIGURE 2 



40 



coordinate system developed by Roberts I23J . When entered 
in a typewritten-type mode, each point designated would be 
a series of four numbers. Two designations are required if 
a point is to be selected by an attention device input. A 
designation is made on the two appropriate orthogonal views 
which specifies the three dimensions of the point. This 
type of system was implemented by Johnson with his Pen 
Space Location Program 122] . 

B. FUNCTIONS 

There are two levels of functions. The lower level 
functions or basic processes are called system functions 
and give the user control over each specific operation that 
is to be performed (e.g., draw a line, erase a line, etc.). 
These functions require no development or programming on 
the users part; the functions desired are just selected. 
This gives the user with no programming experience or ex- 
pertise the ability to sit at the console and construct simple 
displays. The user-defined functions are the higher level 
functions and are programmed by the user. They are programmed 
through the user-defined instruction set. This set includes 
the system functions (whose arguments now become operands) , 
the teletype system commands and the text-editor commands. 
The user-defined functions permit the use of an algorithmic 
approach in order to develop relatively complicated programs. 
User-defined functions can have either externally or in- 
ternally specified operands which give the user a great deal 
of flexibility. 

41 



1. System Functions 

System functions consist of primitives, manipulators, 
storage and retrieval functions, teletype function, and 
dimension selection functions. Functions which have a "-tt" 
suffix require teletype input or some other type of key- 
board device input and the suffix is intended to act as a 
reminder to the user. 

Most of the functions have parameters that can vary 
from points, to images, and in some cases to subpictures. A 
point can be located by several different methods. These 
methods are: 

(1) selecting the point with an attention device 
input (two selections are required in the 
three-dimensional mode) ; 

(2) by entering the X-coordinate, Y-coordinate (the 
Z-coordinate and the scale factor in the three- 
dimensional mode) through a keyboard device; 

(3) by entering a unique name which has been pre- 
viously assigned to the point. 

In order to avoid ambiguity, subpictures and pictures are 
selected by name while images can be selected by selecting 
a point in the image or by name. The noun "component" can 
refer to any of the three hierarchial levels. In describing 
each system function, the function name will be followed by 
a verbal description of the parameters to be entered with the 
function. The necessary remarks explaining the function are 
included under the function. 



42 



a. Primitives 

The primitive functions are the most basic of 
any of the functions and as such are used to construct and 
form the displays. The primitive functions can only be 
utilized in the foreground (at the image level) of the dis- 
play. The primitives are as follows: 

(1) Point Function 
POINT (coordinates) 

Remarks: POINT establishes a point with its coordinates as 
assigned in the inputs. The user has the option to continue 
to define additional points without having to re-select 
POINT. 

(2) Line Function 

LINE (end point coordinates) 

Remarks: Constructs a straight line segment joining the 
given end points. The coordinates of the end points are the 
parameters of the function. The user has the option to 
continue to draw lines by defining additional points without 
having to reselect LINE. Each additional point is the end 
point of a line segment from the previous point designated 
to the additional point last entered. 

(3) Arc Functions 

ARC (center (C) , radius (R) , delimiting point 

coordinates (A) and delimiting point 
coordinates (B) ) 
Remarks: Constructs a circle segment (or circle) with the 
center at C and with line segment CR as the radius. The 



43 




arc is determined by the angle subtended by the two line 
segments AC and BC as shown below: 

B 

R 

A 
If the two delimiting points, which are the third and fourth 

points entered, are omitted, a circle is drawn. 

ARC-TT (center (C) and radius (R) point coordinates 

and the number of degrees (i_) ) 

Remarks: Constructs a circle segment (or circle) with the 

center at C and with line segment CR as the radius. The arc 

originates at R and extends through the number of degrees 

(i) entered in a counter clockwise direction as shown below: 




R 
(4) Text Input Function 

TEXT-TT (coordinates of a point where the text is 

to be located, the size of the text desired 

and the string of text) 

Remarks: Accepts the text message from the teletype and 

places it at the coordinates of the point entered. The 

system querys the user as to size of text and then requests 

the actual text message to be entered. 



44 



(5) Erase Function 
ERASE (coordinates of a point in the selected 

image or the name of the image) 
Remarks: Removes the designated image from the foreground 
display (releases or frees the storage previously utilized 
by the selected image so that the memory cells are available 
for use) . 

bo Manipulators 

The functions that are used to manipulate and 
alter the images, subpictures and pictures are classified 
as manipulators. Some manipulative functions act upon either 
the current image, which is the image that is presently open 
for additions to its display list, or the entire subpicture, 
which is the foreground of the display. If the current 
image is still open, the manipulative function will act upon 
the image, if closed, the function will act upon the current 
subpicture, which is the foreground. (The storage and re- 
trieval function NAME closes an image and is discussed in 
the next section.) The manipulative functions give the user 
the option of manipulating the current image or the fore- 
ground. If the user desires to manipulate the foreground, 
the current image must be closed. The manipulators are as 
follows: 

(1) Reference Point Function 
REF (coordinates) 

Remarks: Designates the reference or anchor point. This 
reference point is the point which the image or foreground 



45 



will be manipulated around, The default value is the center 
of the display or in the case of the three-dimensional 
quadrant view, the center of each quadrant. 

(2) Translation Function 
TRAN (coordinates) 

Remarks: Translates the reference point from its previous 
position to the location entered. This causes the entire 
image or subpicture to translate the same distance and dir- 
ection that the reference point moved. 

(3) Rotation Functions 

ROT (coordinates of two delimiting points 

(A and B) ) 
Remarks: Rotates the image or subpicture about the 
reference point (R) in a counter clockwise direction through 
an angle subtended by the two line segments AR and BR as 
shown below: 



R 



A 

(4) Flip Function 
FLIP (factor) 

Remarks: Reflects the foreground about a vertical axis 
through its reference point. 

(5) Zoom Function 
ZOOM-TT (factor) 

Remarks: Magnifies the image of the subpicture by the 



46 




factor entered. If a negative number is inputed, the image 
or .foreground is diminished (down to the limit of a point) . 

(6) Proportional Change In Size - X Axis 
PROPX (coordinates of two delimiting points) 
Remarks: Shrinks or expands the foreground symmetrically 
about a vertical axis through the reference point (RP) in 
the proportion: 

where a is the X coordinate of the first point entered and 
x 

b is the X coordinate of the second point entered. 
x 

(7) Proportional Change In Size - Y Axis 

PROPY (coordinates of two delimiting points) 

Remarks: Shrinks or expands the foreground symmetrically 

about a horizontal axis through the reference point (RP) in 

the proportion: 

(b -RP )/ (a -RP ) 
Y Y Y Y 

where a is the Y coordinate of the first point entered and 
b is the Y coordinate of the second point entered. 

(8) Display Reference Point 
DRP 

Remarks: Displays the reference point of the image or sub- 
picture as an asterisk. 

(9) Dash Function 
DASH 

Remarks: Changes all the lines in the image or subpicture 
into a dashed representation. 



47 



(10) Hidden Line Functio n 
HIDDEN 

Remarks: Changes all the lines in the image or subpicture 
to an invisible mode. The lines are still present in the 
data structure even though the lines do not appear on the 
display console so interpretative functions can still be 
utilized with respect to the invisible component. 

(11) Intensity Function 
INTENSITY-TT (factor) 

Remarks: Intensity of the image or subpicture is varied by 
the factor (within the limits prescribed by the hardware) . 
If the factor is positive, the intensity is increased; and 
if it is negative, the intensity is decreased. 

(12) Graytone Function 
GRAYTONE 

Remarks: Used to half-tone, that is, shade the image or 
subpicture. This capability has been successfully implemented 
as discussed by Sutherland [25], 

(13) Scale Function 
SCALE-TT (scale for X, Y, and Z) 

Remarks: Defines the picture, with coordinate axes X, Y, Z, 
as being 2X units in width, 2Y units in height, and 2Z units 
in depth. The origin (0,0,0), resides at the center of the 
screen (center of each quadrant in the three-dimensional, 
quadrant view) . The range is from -X to +X, -Y to +Y, -Z 
to +Z. This permits the user to use any scale desired 
whether it be miles, feet or whatever. 



48 



c. Storage and Retrieyal Functions 

In order to provide convenience and completeness 
to the user, various functions are needed to store and re- 
trieve images into or from a subpicture, subpictures into 
or from a picture and pictures into or from a library. The 
storage and retrieval functions are as follows: 

(1) Frame Component Function 
FRAME 

Remarks: Appends the current contents of the foreground 
display to that of the background display as in internal 
structure (subpicture) . Automatically gives a unique sub- 

m 

picture number for retrieving the structure. (The user has 
the option of using the NAME function to give the structure 
a unique name) . The intensity of the foreground is reduced 
in order to assist in the visualization of the hierarchial 
levels . 

(2) Store Picture Function 
STORE-TT (name) 

Remarks: Stores the current contents of the background dis- 
play in the storage area or library for pictures under the 
name entered. 

(3) Retreival Function 
FETCH-TT (name) 

Remarks: Retreives the image, subpicture or picture, whose 
name is entered. If the component named is an image or sub- 
picture it is displayed as part of the current foreground 
(the component must be a component of the current picture) ; 



49 



if the component name is a picture it replaces the present 
contents of the background display. Images and subpictures 
retreived are opened for the addition of vectors or other 
modifications . 

(4) Name Function 
NAME-TT (name) 

Remarks: Assigns the name entered to the header (first 
location) of the designated image or subpicture (pictures 
are named by STORE-TT function) . Each name must be unique 
to avoid ambiguity in retreiving the image or subpicture. 
In order to explicitly assign a name to a subpicture, NAME 
must be called immediately after FRAME. When NAME is used 
in regards to an image, it "closes out" the image. "Closes 
out" means that no additional vectors can be added to the 
display list of that image until the image is retrieved by 
the FETCH function. 

(5) Delete Function 
SCRUB-TT (name) 

Remarks: Deletes the picture specified by the name from 
storage or the subpicture specified by the name from the 
background. Frees the storage previously utilized by the 
picture or subpicture which is scrubbed. 

(6) Clear Foreground Function 
CLRF 

Remarks: Blanks the foreground display and frees the storage 
utilized by the images in the foreground display (in most 
cases the user will have stored the images desired for 
retention in a subpicture) . 

50 



(7) Clear Background Function 
CLRB 

Remarks: Blanks the background display and frees the storage 
utilized by the subpictures in the background display (in 
most cases the user will have stored the picture desired in 
order to retain the subpictures and images) . 

(8) Hard Copy Function 
PHOTO 

Remarks: Generates a hard-copy of the entire console screen. 

d. Keyboard Device Functions 

When the user desires to input specific data 
which is normally entered by attention device through a key- 
board device, the TTY function must be called. 
TTY 

Remarks: Alerts system that the normal input by attention 
device will be via a keyboard device. All inputs for the 
function must then be entered by a keyboard device. Functions 
which have the suffix "-TT" should not be followed by the 
TTY function unless the normal attention device inputs (if 
any) are to be entered via the keyboard device. For example, 
with ARC-TT if the first two delimiting points were to be 
entered by a keyboard device instead of an attention device 
the TTY function would be used. 

e. Analysis Functions 

Functions which interpret the topology and 
other pictorial features of a display are required in a 
general purpose graphic language. Certain basic analysis 



51 



functions are provided in GPGL which permit the user to 
develop more complex interpretative programs . Some functions 
return a value and print the value by teletype. If the 
function is used in a user-defined function, the teletype 
message is not printed. 

(1) Within Function 

WITHIN (coordinates of two points with each point 

designating an image, or two names designat- 
ing images or subpictures) 

Remarks: Checks whether the component entered first lies 

within the second component entered. . 

(2) Separate Function 

SEPAR (coordinates of two points with each point 

designating an image, or two names designat- 
ing images or subpictures) 
Remarks: Checks whether the selected images or subpictures 
are separated. If there is no intersection of lines or 
points, and one component does not lie within the other, 
TRUE is returned and printed by the teletype, otherwise 
FALSE is returned and printed by the teletype. 

(3) Simply-Connected Function 

SIMPLY-TT (name of an image, subpicture or picture) 
Remarks: Determines whether the designated component is a 
simply-connected region. (Simply-connected region is a 
region for which any closed curve lying in the region can 
be continuously shrunk to a point without leaving the 
region [26] .) 



52 



(4) Region Assignment Function 
REG-SNAP-TT (property) 

Remarks: Assigns each point in the display (picture) to 
a region, which has internally generated labels with the 
property selected by the parameter entered. This process 
is referred to as a region snap. Normally the property is 
color, (i.e., black, white and/or shades of gray [15]). 

(5) Name Region Function 

NAMEREG-TT (coordinates of a point, the property 

parameter and a name) 
Remarks: Assigns the name entered as the name of the re- 
gion, with respect to the property specified by the property 
parameter, which the selected point or component is in. 

(6) Connection Functions 
CONECT (coordinates of two points) 

Remarks: Checks whether the two selected points are in the 
same region. If they are connected (in the same region), 
a TRUE is returned and printed by the teletype. If not, 
FALSE is returned and printed by the teletype. 
CONECTBY-TT (coordinates of two points and a name of 

a component) 
Remarks: Checks whether the two selected points are in the 
same region and whether the named component connecting 
the two points is in the region. TRUE or FALSE is returned 
and printed by the teletype. 

(7) Adjacent Function 

ADJAC (coordinates of two points or the names 

of two components ) 
53 



Remarks: Determines the adjacency of the designated com- 
ponents. If the two components are in the same region a 
zero is returned and printed by the teletype. If the com- 
ponents are in adjoining regions, a one is returned and 
printed by the teletype. If otherwise, the number of re- 
gions plus one, intervening between the two regions contain- 
ing the designated components is returned and printed. 

(8) Intersection Function 
INTERX (coordinates of two points or the names 

of two components) 
Remarks: Determines whether the designated components 
intersect. If they intersect any where in the display, the 
intersection value for the property previously used in the 
region snap is returned and printed at the teletype, other- 
wise FALSE is returned and printed at the teletype, 
f. Dimension Selection Functions 

The user determines which display mode he is 
going to use, either a two-dimensional display or a three- 
dimensional display and then selects the appropriate functions. 
The dimension selection functions are as follows: 

(1) Two-Dimensional Function 
2-D 

Remarks: User selects this function first if he is going 
to use the normal, two-dimensional display mode. 

(2) Three-Dimensional Function 
3-D 

Remarks: User selects this function first if he is going 
to use the three-dimensional display mode. 

54 



(3) Three-Dimensional View Functions 
QUAD I 

QUAD I I 

QUADIII 

QUADIV 

Remarks: Enlarges the selected quadrant to full screen size 

on the display console. (Used in the three-dimensional mode 

only. ) 

(4) Quadrant-View Function 
3-D VIEW 

Remarks: Returns the display to a quadrant view. (Used 
in the three-dimensional mode only.) 
g. Keyboard Mode Function 

In order for the user to develop user-defined 
functions, it is necessary to enter a keyboard mode where 
teletype system and text-editor commands are inputed through 
the keyboard device. 
TTYMODE 

Remarks: Causes the keyboard mode to be entered. 
GET (coordinates of up to four points) 

Remarks: Used to enter attention device inputs during the 
execution of a user-defined function. Provides the capability 
of allowing external inputs, whose locations can not be 
determined by the user prior to the execution phase. (Used 
only with user-defined functions.) Permits the input of up 
to four points into pre-planned and allocated storage 
locations . 



55 



2. User-Defined Functions 

The user-defined functions, which are constructed 
by the users, are subroutines written by the user, compiled 
and stored under a unique name and then executed when a user 
selects the function's name from the menu. Therefore, user- 
defined functions developed by one "user can be used to 
advantage by any other user. This gives the system an ex- 
cellent growth potential, limited only by_the storage 
capacity of the function library. The user-defined functions 
can be stored in pages or other segments. 

The functions are normally formed by using the user- 
defined instruction set, which contains the system functions, 
the teletype-system commands and the teletype-editor commands 
The teletype-system and the teletype-editor commands are 
similar to the ones used by Streit [9] . The choice of using 
similar commands to those of Streit' s was made after 
examining the languages and systems previously mentioned. 
Streit 's teletype mode is more natural, easier to implement, 
and much simpler to use than those of the other graphic 
languages and systems. The capability of using external 
programs (written in a language acceptable to the systems ' 
compiler) is an important addition to Streit *s teletype 
system. 

From the user's standpoint, the user-defined 
functions appear the same as system functions once written 
and compiled. All locations in a user-defined function 
are referred to a coordinate system local to the function. 



56 



This requires the user to use a scale instruction when the 
function locates primitives on the display screen. The 
local coordinate gives the system user great flexibility and 
freedom in applying user-defined functions (but requires 
that the implemented system map all data locations between 
the user-defined function and the system's display). The 
user-defined functions can have internally or externally 
specified operands which give the user the ability to de- 
fine any needed locations or points at the time the function 
is formed or when the function is called. The format used 
to define the user-defined instruction set is as follows: 
Label: OPCODE A;B;C;... 

or 

cL J D } C i • • . 

Remarks: A, B, C...are symbolic address labels which are 
local to the user-defined function and a, b, c... are 
numerical operands. The label portion of the instruction 
is formed by an identifier followed by a colon, while OPCODE 
is the operation code given in the user-defined instruction 
set. Parenthesis are used to show all the different 
variations of the basic instruction. 

a. User-Defined Instruction Set 

The user-defined instruction set contains 
instructions formed by using the system functions as the 
OPCODE with the functions inputs as OPERAND as shown below 
for the function LINE: 

Label: LINE A;B 
Remarks: Connects the points A and B to form a line segment, 
AB. 57 



In addition to the system functions, the user- 
defined instruction set includes arithmetic, conditional 
and control instructions. These instructions give the user 
an algorithmic-type programming capability which allows more 
flexibility, especially in respect to using the interpretative 
functions . 

The arithmetic instructions give the user the 
basic arithmetic operations required, which include assign- 
ment, addition and subtraction. These instructions can be 
used for all the coordinate values or for the individual 
coordinates. The individual coordinate values are shown 
in parenthesis. The arithmetic instructions are as follows: 

(1) Label: SET A;B 

(SETX 
SETY 
SETZ) 
Remarks: Assigns B to A. 

(2) Label: ADD A;B 

(ADDX 

ADDY 

ADDZ) 
Remarks: Adds the X, Y, Z components of points A and B 
and places the result in A. 

(3) Label: SUB A;B 

(SUBX 

SUBY 

SUBZ) 



58 



Remarks: Subtracts the X, Y, Z components of points B from 
A and places the result in A. 

(4) Label: SWITXY A 

CSWITYZ 
SWITXZ) 
Remarks: Assigns the X component of A the value of the Y 
component and the Y component the value of the X component. 
(Assigns the Y component of A the value of the Z component 
and the Z component the value of the Y component. Assigns 
the X component of A the value of the Z component and the 
Z component the value of the X component.) 

The conditional instructions allow conditional 
branching which permits the user to transfer control if 
various conditions are met. The instructions are as follows 

(1) Label: NZX A;B 

(NZY 

NZZ) 
Remarks: Tests the X component of point A, and if non-zero, 
transfer control to B, otherwise control is passed to the 
next instruction. The alternate instructions test the Y and 
Z component of point A respectively, if non-zero, they 
transfer control to B, otherwise control is passed to the 
next instruction. 

(2) Label: ZRX A;B 

CZRY 
ZRZ) 



59 



Remarks: Tests the X component of point A, and if zero, pass 
control to B, otherwise control is passed to the next in- 
struction. The alternate instructions test the Y and Z 
component of point A respectively, if zero, they pass control 
to B, otherwise control is passed to the next instruction. 

(3) Label: NGX A;B 

(NGY 

NGZ) 
Remarks: Tests the X component of point A, and if negative, 
transfer control to B, otherwise control is passed to the 
next instruction. The alternate instructions test the Y 
and Z component of point A respectively, if negative, they 
transfer control to B, otherwise control is passed to the 
next instruction. 

(4) Label: PSX A;B 

(PSY 
PSZ) 
Remarks: Tests the X component of point A, and if positive, 
transfer control to B, otherwise control is passed to the 
next instruction. The alternate instructions test the Y and 
Z component of point A respectively, if positive, they pass 
control to B, otherwise control is passed to the next 
instruction. 

The unconditional transfer instruction passes 
control to the designated symbolic address. 

Label- GOTO A 
Remarks: Transfers control to A. 



60 



b. Teletype- System Commands 

The teletype system commands are used to create 
and manipulate the text and code of the user-defined functions 
The format of the commands is: 

COMDl C0MD2/FIELD. 
The first two fields are the command portion, 
where C0MD1 specifies whether the command pertains to a 
function, picture or an external program, which is entered 
as a user-defined function. C0MD2 is the action that the 
command is to perform. The remaining, portion, which is 
FIELD, is the argument for the command. The command and 
field portion are separated by a slash and the instruction 
is ended with a period. Some instructions have no COMDl 
portion and/or argument so the command portion consists of 
only an action part and the FIELD portion may be blank. The 
slash and period are always required. The command portion 
may be abbreviated to the first letter of the two fields (the 
underlined character or characters in each instruction) . 
Blanks are used as delimiters except between the command and 
its argument where the slash is the delimiter. The teletype- 
system commands are as follows: 

(1) Definition Command 

FUNCTION DEFINE/NAME. 
Remarks: This command opens a user-defined function titled 
NAME by entering the text-editor mode. When the user has 
completed his function, the text and code are stored under 
the symbolic address, NAME in the function library. 



61 



(2) Modification Command 
FUNCTION" MODIFICATION/NAME. 

Remarks: Fetches the text of the present user-defined 
function with the symbolic address NAME. Deletes the code 
and enters the test-editor mode. 

(3) Purge Command 
FUNCTION PURGE/NAME . 

Remarks: Deletes the text, code, and entry points for the 
user-defined function NAME. 

(4) Change Name Command 

FUNCTION NAME/OLDNAME NEWNAME . 
Remarks: Changes all the entry points associated with the 

user-defined function OLDNAME to NEWNAME. 

(5) Fetch Command 

FUNCTION FETCH/NAME. 
Remarks: Fetches the text for the user-defined function 

NAME. 

(6) Fetch Code Command 

FUNCTION CODE/NAME. 
Remarks: Fetches the code for the user-defined function 

NAME. 

(7) List Functions Command 
FUNCTION LIST/. 

Remarks: Lists all the user-defined functions in the 
function library. 

(8) List Picture Command 

PICTURE LIST/. 

Remarks: Lists all the pictures in the picture library. 

62 



(9) External Program Input Command 
PROGRAM INPUT/NAME. 

Remarks: Accepts programs as inputs through paper tape, 
punched cards or other input devices acceptable to the 
implemented system. These programs can be in machine code 
or any high-level programming language which the system's 
compilers can compile. These programs are compiled and 
stored as a user-defined function executable on call. 
(Modification and Fetch system commands can not be executed 
on the external programs, which are in some other programming 
language. ) 

(10) Exit Teletype Mode Command 
RETURN/ . 

Remarks: Teletype mode is exited and the user is returned 
to the function menu selection mode. 
c. Text-Editor Commands 

The text-editor commands permit the user to 
construct or modify the user-defined functions. The text- 
editor mode is entered by executing either the definition 
or modification teletype commands. The command format for 
the text-editor commands is similar to that used for the 
teletype-system commands. The format consists of: 

COMD1 C0MD2 COMD3/TEXT. 
where C0MD1 is the action indicator and COMD2 and C0MD3 are 
the arguments. TEXT is the text lines of the user-defined 
function and consist of a label portion (LABEL:), an OPCODE 
portion and an OPERAND portion, which contains the arguments 



63 



of the functions in the OPCODE. Since some commands have 
only, one argument or no arguments, C0MD2 and C0MD3 may be 
blank. Some TEXT lines have no label, so the label portion 
may be blank. If, instead of entering a text line, an exist- 
ing text line is manipulated, the TEXT portion is blank. 
Blanks are used as delimiters except between the command 
portion and TEXT where the slash is used. The slash and 
period are required for all instructions. The text-editor 
commands are as follows: 

(1) Next Text Line Command 
NEXT/ TEXT. 
Remarks: Enters TEXT as the next line of the text-editor 



display. 



(2) Insert Text Line Command 



INSERT a/TEXT. 
Remarks: Enters TEXT as the line above line a and below line 
a-1. 

(3) Purge Text Line Command 
PURGE a/. 

Remarks: Deletes. line a, and moves all the lines a+1 and 
greater up one line. 

(4) Move Text Line Command 
MOVE a b/. 

Remarks: Deletes text line a and moves all the lines up one 
line and then inserts same text line, which was removed, 
above line b. 



64 



(5) Replace Text Line Command 
REPLACE a/TEXT. 

Remarks: Replaces the line a with TEXT. 

(6) Compile Command 
COMPILE/. 

Remarks: Compiles the text displayed and loads the text 
and code into the function library under the name associated 
by the definition or modification teletype system commands. 
The system returns from the text-editor mode into the nor- 
mal execution mode. 

d. Examples of a User-Defined Function 

In order to demonstrate the procedures required 
in constructing a user-defined function, two examples are 
discussed. The first example describes those teletype- 
systems commands and text-editor commands, which would be 
utilized in constructing the function. The second example 
shows only the text lines which make up a user-defined 
function in order to demonstrate the finished product. 

The commands and the sequence in creating a 
user-defined function named HORIZON, which takes a given 
line and creates a horizontal line with the same X coordinates 
for its end points, are shown below with amplifying comments. 
The system functions are designated as (SF) ; the teletype- 
system commands are designated (TS) ; and the text-editor 
commands are designated (TE) . The abbreviated format for 
the teletype-system and the text-editor commands is not 
used for clarity. A carriage-return character, which 



65 



signifies the end of each instruction, is not shown. The 
lines three through fifteen are used to construct the text 
lines which will accomplish the actions discussed in the 
comment portion when the user-defined function is executed. 

NUMBER COMMANDS TYPE COMMENTS 



5 

6 



7 
8 






10 

11 

12 
13 



TTYMODE 



FUNCTION DEFINE/HORIZON 



NEXT/ 2-D. 

NEXT/ SCALE 500; 500 



NEXT/ CLRF. 
NEXT/ GET A;B. 



TE 
TE 



TE 
TE 



NEXT/ REF A. 
NEXT/ LINE A;B . 

NEXT/ SETX TEMP;B 

NEXT/ SETY B;TEMP 

NEXT/ ROT B;TEMP. 

NEXT/ RETURN. 
NEXT/A POINT. 



SF User selects the 

teletype mode with 
an attention device 
input. 

TS Enters the text- • 

editor mode with the 
name HORIZON, which 
is associated with 
the function to be 
constructed. 
Selects 2-D repre- 
sentation. 

Determines the local 
scale of the function 
to be 500x500. 
Clears the foreground. 
Accepts two attention 
device inputs upon 
execution and loads 
their coordinates in- 
to the OPERAND por- 
tion of locations 
A and B 

TE Moves the reference 
point to point A. 

TE Draws a line segment 
from point A to point 
B. 

TE Assigns the X com- 
ponent of B to the X 
component of point 
TEMP. 

TE Assigns the Y com- 
ponent of point A to 
Y component of point 
TEMP . 

TE Rotates the image 
(line AS about A 
through the angle B- 
A-TEMP . * 

TE Returns control from 

the subroutine HORIZON. 

TE Creates the symbolic 

address A and designates 
it as a point. 



66 



IS 



16 



NEXT/B POINT , 
NEXT/TEMP POINT. 
COMPILE/. 



14 NEXT/B POINT, TE Creates the symbolic 

address B and desig- 
nates it as a noint. 

TE Creates the symbolic 
address TEMP and de- 
signates it as a point. 

TS Compiles the function 
HORIZON and stores 
the text and code in 
the function library 
under HORIZON and re- 
turns control from 
the teletype mode. 

* The line segment AB 
is horizontal, but the 
length has been changed 

The text and amplifying comments for a user- 
defined function named PARALLEL, is shown below. The user- 
defined function HORIZON is used. A carriage-return 
character which signifies the end of each instruction is not 
shown. 
NUMBER FIELD1 FIELD2 FIELD3 COMMENTS 



1 
2 

3 
4 



2-D 




SCALE 


500;500 


CLRF 




GET 


A ; B ; C ; D 



SET 
HORIZON 



TEMPI; B 
A;B 



HORIZON C;D 



NAME 



REF 



PARA 



A 



Selects 2-D representation. 
Determines the local scale 
to be 500,500. 
Clears the foreground. 
Accepts four attention de- 
vice inputs and loads them 
in OPERANDS of lines 12, 
13, 14, 15. 

Sets point TEMPI equal to 
point B. 

Calls the user-defined 
function HORIZON, which 
makes line segment AB 
horizontal . 

Calls the user-defined 
function HORIZON, which 
makes line segment CD 
horizontal . 

Names and closes image 
(PARA) so that next com- 
mand will act on foreground 
Moves the reference point 
to point A. 



67 



10 



ROT 



11 




RETURN 


12 


A 


POINT 


13 


B 


POINT 


14 


C 


POINT 


15 


D 


POINT 


16 


TEMPI 


POINT 



17 



TEMP 2 



POINT 



B; TEMPI Rotates the foreground 
(lines AB and CD) about 
point A through the angle 
B-Z-TEMP1. 

Returns control from the 
subroutine parallel. 
Creates the symbolic ad- 
dress A which is a point. 
Creates the symbolic ad- 
dress B which is a point. 
Creates the symbolic ad- 
dress C which is a point. 
Creates the symbolic ad- 
dress D which is a point. 
Creates the symbolic ad- 
dress TEMPI which is a 
point. 

Creates the symbolic ad- 
dress TEMP2 which is a 
point. 



C. EXAMPLES OF THE USE OF GPGL 

The use of GPGL (implemented in an imaginary graphics 
system) is demonstrated in the following examples. The 
procedures are described by listing in chronological sequence 
the functions and inputs which would be utilized by a user 
if he were actually at a console programming. The displays 
are kept relatively simple for clarity and ease of compre- 
hension. The attention device inputs which are required to 
locate components of the display (i.e., points, lines, etc.) 
are considered to be light pen hits (abbreviated as LP) and 
numbered sequentially (e.g., LP1, LP2) . 

Teletype inputs are shown in capital letters and under- 
lined. The selection of the actual functions used is re- 
presented by the name of the function with no attempt to show 
what method of selection would be used (i.e., light pen picks, 
depressed function switch, etc.). 



68 



A two-dimensional display is developed to draw a geo- 
metric pattern which is named EMBLEM and then manipulated. 
ORDER FUNCTION ARGUMENTS COMMENTS 



User selects the two-dimensional 
mode. 

Clears foreground (not re- 
quired if already clear) . 
Clears background (not required 
if already clear) . 
Draws a triangle from LP1 to 
LP2 to LP3 to LP4 (LP4=LP1) . 
Names the triangel A. 
Draws a triangle from LP 5 to 
LP6 to LP7 to LP8 (LP8=LP5) . 
Names the triangle B. 
Frames trianges A and B into 
a subpicture. 

Names the subpicture TRIANGLES. 
Clears the foreground. 
Draws a circle with LP9 as 
center and the radius the line 
segment from LP9 to LP10. 
Frames the circle. 
Stores the picture named EMBLEM, 
which consists of two triangles 
and a circle. 
Clears the background. 
Clears the foreground. 
Fetches EMBLEM from storage 
and displays it in the back- 
ground. 

Fetches subpicture TRIANGLES 
and displays it in the fore- 
ground. 

Rotates the foreground (both 
triangles) 90 degrees CCW. 
Fetches image A (triangle A) . 
Dash function is called and 
triangle A is dashed. 
Clears the background. 
Frames the dashed line triangle 
A and triangle B into a sub- 
picture. 

Stores the picture named TRI 
which is composed of triangle 
A, which is a dashed triangle, 
and triangle B both rotated 
90 from the original subpicture 
TRIANGLE . 



1 


2-D 




2 


CLRF 




3 


CLRB 




4 


LINE 


LP1;LP2; 
LP3;LP4 


5 


NAME-TT 


A C/R 


6 


LINE 


LP5;LP6; 
LP7;LP8 


7 


NAME-TT 


B C/R 


8 


FRAME 




9 


NAME-TT 


TRIANGLES C/R 


10 


CLRF 




11 


ARC 


LP9;LP10 


12 


FRAME 




13 


STORE-TT 


EMBLEM C/R 


14 


CLRB 




15 


CLRF 




16 


FETCH-TT 


EMBLEM C/R 


17 


FETCH-TT 


TRIANGLES C/R 


18 


ROT-TT 


90 C/R 


19 


FETCH-TT 


A C/R 


20 


DASH 




21 


CLRB 




22 


FRAME 




23 


STORE-TT 


TRI C/R 



69 



A three-dimensional display composed of a rectangular 
solid is constructed. FIGURE 3 shows the solid and the 
alphabetic designation of its corners, which are enclosed 
in parenthesis in the example. 
ORDER FUNCTIONS ARUMENTS COMMENTS 



1 


3-D 


2 


SCALE 


3 


LINE 



4 
5 

6 



GRAYTONE 

NAME-TT 

LINE 



IP; 10; 10 C/R 

LP1,LP2; (A) 
LP3,LP4; (B) 
LP5,LP6; (C) 
LP7,LP8; (D) 
LP9,LP10 (A) 



FRONT C/R 

LP11,LP12; (A) 
LP13 / LP14; (D) 
LP15,LP16; (H) 
LP17,LP18; (E) 
LP19,LP20(A) 



7 


GRAYTONE 




8 


NAME-TT 


SIDE C/R 


9 


LINE 


LP21,LP22; (D) 
LP23,LP24; (C) 
LP25,LP26; (G) 
LP27,LP28; (H) 
LP29 / LP30(D) 


10 


GRAYTONE 




11 


NAME-TT 


TOP C/R 


12 


LINE 


LP31,LP32; (B) 
LP33,LP34; (F) 
LP35,LP36 (E) 


13 


HIDDEN 




14 


NAME-TT 


EDGE C/R 


15 


LINE 


LP37,LP38; (F) 
LP39,LP40(G) 


16 


HIDDEN 




17 


NAME-TT 


REAR C/R 


18 


FRAME 





Selects the three-dimensional 
representation . 
Sets the scale for each axis 
from -5 to +5. (ABCD) 
Constructs the front (ABCD) 
of the solid. 



Shades the front (ABCD) a 
lighter gray. 
Names the square (ABCD) 
FRONT and closes the image. 
Constructs the right side 
solid (ADHE) . 



Shades the side (ADHE) to 
lighter gray. 

Names the right side (ADHE) 
SIDE and closes the image. 
Constructs the top of the 
solid (DCGH) . 



Shades the top a lighter 

gray. 

Names the top (DCGH) TOP. 

Constructs the lines BF 

and FE. 

Lines (BEF) are changed to 
the invisible mode. 
Names lines (BFE) EDGE. 
Line (FG) is drawn. 

Line (FG) is changed to the 
invisible mode. 
Names line (FG) REAR. 
Entire solid with its hidden 
line becomes a subpicture. 



70 







LP16 
LP 18 
LP28 






G 


H 
"* E 


LP25 

LP33 
LP 37 






LP 4 




LP36 

LP 8 


c 


S' D 




* 
S 
/ 

' 


* F ^ 


LP23 
LP32 




LP14 
LP20 
LP21 


B A 


LP 5 

LP24 

LP39 




LP 7 

LP13 

LP29 


LP 6 

LP22 

LP33 




LP15 
LP26 
LP27 
LP40 

LP17 
LP34 
LP35 
LP38 


LP 3 ' 




LP1 


LP 2 




LP31 




LP 9 

LP11 

LP19 


LP10 
LP12 





FIGURE 3 



71 



19 


NAME-TT 


20 


POINT 


21 


TTY 



BOX C/R Subpicture is named BOX. 

Point function is called. 

2; 2; -3 ; .75 C/R Normal attention device 

input mode is changed to 
teletype mode and coordinates 
of X=2, Y=2, Z=-3 and scale 
of .75 are entered. 

22 NAME-TT Q C/R Names r>oint entered Q. 

23 WITHIN Calls the interpretative 

function WITHIN. 

24 TTY Q ; BOX C/R Usual attention device in- 

put mode is changed to tele- 
type mode and Q and BOX 
are entered. Then the inter- 
pretative function WITHIN 
determines whether point Q 
is in BOX and prints either 
TRUE or FALSE through the 
teletype. 



72 






IV. •' IMPLEMENTATION OF GPGSY, A SUBSET OF GPGL, AT THE NPS 
A. OBJECTIVES 

GPGSY, a subset of GPGL, was implemented at the Electrical 
Engineering Computer Laboratory at the Naval Postgraduate 
School. The purpose was to illustrate some of the problems 
that are encountered in actually implementing GPGL into a 
graphic system. (The fact that a primitive graphics system, 
which is extremely easy to utilize and which will be easy to 
extend, is not available at the NPS is only a by-product.) 
The primary objective in selecting the subset to be implemented 
was to examine the problems encountered in having a tri- 
level hierarchial language. The necessary pointers and dir- 
ectories to implement the image, subpicture and picture con- 
cept were of specific interest. 

There are many reasons why a subset was implemented in 
lieu of the full GPGL language. The overriding reason was 
the impossibility of fully implementing GPGL with the hard- 
ware available at the computer laboratory. The fact that 
only a subset can be implemented is expected to be the rule 
instead of the exception for most computer installations. 
GPGL was specifically designed so that personnel at a com- 
puter installation can select a desirable subset, which both 
meets the needs and the capabilities provided by the available 
hardware. The selection of the subset at NPS tested this 
hypothesis . 



73 



GPGL was designed to be hardware independent and this 
was important since the subset had to be implemented on the 
specific hardware available at the laboratory. A desired 
capability for a general purpose language is that it be inter- 
active; GPGSY presented an opportunity to see if at least a 
portion of GPGL was truely interactive. It was also desired 
to examine the feasibility of giving the user the option of 
entering data either by attention device signals or tele- 
typewriter as permitted in GPGL. 

B. THE IMPLEMENTED SUBSET 

GPGSY is an interactive, general purpose graphics system 
which permits the user to construct two-dimensional displays 
on a cathode ray tube (CRT) . (The hardware utilized was 
not designed for three-dimensional representation.) GPGSY 
requires a storage capacity of 1,843 30-bit words and is 
written in ADEPT, an assembly language. The ADEPT program 
with explanatory comments is appended to the thesis. 

The system was implemented on an Adage Graphics Terminal, 
Model 10. The nucleus of the system is the Digital Processor, 
DPR2, which is a general purpose digital computer with a two 
microsecond memory cycle time and one microsecond register 
to register transfers. The core memory size is 8K with a 
30-bit word length. A two pack disk drive is available 
for auxiliary storage. The graphics terminal consists of 
a cathode ray tube (CRT) , teletypewriter, a vector generator, 
a character generator, a light pen and sixteen function 



74 



switches. A resident monitor (AMKMX) is used to store and 
retrieve programs from the disk pack, to process programs, 
and to control various system components. Portions of the 
monitor are explicitly used in implementing GPGSY by calling 
on it to receive and print teletype messages. 

With the primary objective of examining the hierarchial 
levels in mind the primitive functions of LINE, (drawing a 
line, which is the basic building component) and ERASE (the 
capability to erase an image) were selected. LINE was, 
of course, necessary in order to construct a display, and 
ERASE was of interest because of the problem of erasing the 
line or lines at the right hierarchial level. 

The manipulative functions implemented were REF (designat- 
ing the reference point for the images or subpicture) , TRAN 
(translation of the images or subpicture) , ZOOM-TT (enlarge 
or dimish the image or subpicture) and DASH (change all lines 
in the image or subpicture to the dash mode) . The REF 
function was chosen because it was needed in order to have 
an anchor point or reference point to manipulate the images 
around. The translation function was chosen as the main 
manipulative capability because it could be more easily 
implemented. It provided the same problems in respect to 
the hierarchial levels as the other manipulative functions. 
A function to increase and decrease the size of the images 
was desired; therefore, ZOOM -TT was. selected as the best 
function to provide this capability. The problem of which 
hierarchial level should be changed to the dashed representation 



75 



was of sufficient interest to warrant the inclusion of the 
DASH function to the subset. 

The storage and retrieval functions included in the 
subset are FRAME (forms and sequentially numbers subpictures) 
and NAME (forms and names images, and names subpictures) . 
The function NAME is used to close out an image - group all 
the components (i.e., lines arcs and points) drawn since 
the previous image was closed out into one image - by placing 
a unique name in its header cell. FRAME closes out one sub- 
picture and opens the next in a similar manner to the closing 
of the images by NAME. FRAME also automatically numbers 
the subpictures for future reference. 

The function TTY was implemented. This gives the user 
the capability of entering point locations for LINE, REF, 
and TRANS by teletype. 

The operating procedures utilized by a user are discussed 
below, from the standpoint of the actions required by a user 
and the responses that the system makes. The user loads the 
program, GPGSY, and executes it with the normal monitor 
commands. The nine functions appear on the CRT listed as a 
menu in the right margin. (See FIGURE 4.) The user selects 
the function LINE with a light pen pick and a cursor appears 
at the center of the screen. The user using the light pen 
guides the cursor to the desired position. When the cursor 
is in position, the user depresses function switch 1 (FNSW1) , 
which stores the location in the display list as a move 
(vector with the beam blanked) . Then the user guides the 



76 



o 

H 

Eh 
U 
W 

w 

« 
o 

fa 

D 

W 
S 





K 
En 
H 



s 






o 



« 

D 
CD 

H 

fa 



77 



cursor to the next desired position and designates this 
point by again depressing FNSW1 . This action places the 
selected location in the data list as a draw and a line 
segment appears with the two selected locations as the end 
points. The user continues drawing line segments as long 
as desired. The entering of line segments is only limited 
by the available core storage. When the user selects any 
of the other functions from the menu, the cursor disappears 
and some other interactive action takes place. Teletype 
messages giving the appropriate directions are used as 
responses so the user can utilize the system with hardly any 
prior instruction. After creating some object on the screen, 
the user can select any of the other eight functions. 

The specific actions, which take place when a user 
selects a function by a light pen pick, are as follows: 

(1.) ERASE 

The teletype prints the following message, "SELECT 
IMAGE TO BE ERASED WITH LIGHT PEN." The user then takes a 
light pen pick on one of the lines to be erased and the entire 
image containing this line is erased from the screen. 

(2. ) REF 

The cursor appears in the position of the present 
reference point. The user guides the cursor to the desired 
position and depresses FNSW1, which loads the new reference 
point into storage. All manipulative functions are now 
accomplished in respect to this new reference point. 



78 



(3.) TRAN 

The cursor appears at the position of the present 
reference point. The user guides the cursor in the direction 
and the distance desired and then depresses FNSW1 . The image 
or subpicture then translates in the direction and the dis- 
tance that the cursor moved. 

(4.) DASH 

When the user selects this function, all the lines 
in the entire image or subpicture become dashed. 

(5. ) ZOOM-TT 

The teletype prints the following message "INPUT 
UP TO 5 OCTAL DIGITS, NEGATIVE DIMINISHES." The user then 
inputs the incremental change in size that is desired. The 
function automatically limits the input from (the image 
is shrunk to a point) to 37777 (the maximum size that the 
vector generator can scale a vector) . 

(6. ) FRAME 

The teletype prints the following message "SUBPIC_ 
CLOSED, SUBPIC_ OPENED" with the appropriate numbers in the 
blanks. No further action is required of the user. 

(7. ) NAME-TT 

The teletype prints the following message "INPUT 
UP TO 5 CHARS." After the user enters the name of the image 
in five characters or less, the following message is printed 
by the teletype, "IMAGE CLOSED, NEW IMAGE OPENED." 



79 



(8.) TTY 

The teletype prints the following message, "INPUT 
POINT (10 OCTAL DIGITS)." The user types in the coordinates 
of the point and in the cases of REF and TRAN no further action 
is required. With LINE, the teletype prints, "INPUT NEXT 
END POINT (10 OCTAL DIGITS) OR * TO END," and continues to 
accept points in this manner to draw a contiguous figure. 

All the functions have appropriate messages which are 
typed by the teletype when the user commits an error, when 
all the images in a subpicture are used, or when all the 
subpictures are filled. 

One of the original principles of the design of GPGL 
was to keep it as hardware independent as possible. GPGSY 
uses a CRT, teletypewriter, digital computer, light pen, 
one function switch, vector generator and character generator. 
Any computer graphics installation should have these devices 
(the character generator might be a software item) , so the 
selected subset of GPGL can be considered relatively hard- 
ware independent. The hardware does certainly effect the 
implementation and in the case of GPGSY, the operating 
procedures. The vector generator develops new X and Y 
coordinates for the end points of the vectors which are to 
be drawn by the following formulas: 

X'=DX+SC(X) (X 1 is the new X coordinate, DX 

is a translation or offset in- 

Y'=DY+SC(Y) crement, X is the old X coordinate 

and SC is the scale factor. 
Same for Y.) 



80 



The DPR2 has a hybrid array which automatically adds the DX 
and DY to every point in the display list. The register 
containing DX and DY is used in both TRAN and REF functions. 
The interesting point is that if an image is diminished by 
ZOOM-TT, the image is diminished, but the distance the image 
is from the reference point is also diminished because of the 
above formulas. If the user desires to diminish or magnify 
only the figure drawn, the user must move the reference point 
to the figure before using ZOOM-TT. Then ZOOM-TT is selected, 
the figure is diminished or magnified in position. This 
presents no serious problem to the user, but it does demonstrate 
the fact that the hardware (to be efficiently used) will 
dictate an order to execution for specific actions. 

There was no problem implementing GPGSY in a conversational 
mode (a rapid computer response for each action of the user) . 
Not all responses are graphical since many teletype messages 
are used as responses. This permits a user with little or 
no programming experience to use GPGSY, which is one of 
the design goals for GPGL . 

The most interesting aspect in implementing GPGSY was 
the approach to a tri-level hierarchy within the components 
of the developed display. The lowest level, the image, is 
composed of any number of lines with the same scale, intensity 
and offset increments (DX and DY) . Each image has a six cell 
directory which includes a header cell for the name, a cell 
for the scale, a cell for the intensity, a cell for DXDY, a 
cell for a dash mask (which is filled with an appropriate 



81 



mask when DASH is selected for the image) and a cell for the 
word count (the word count is the number of words in the dis- 
play list and this number is loaded into the cell when the 
image is closed) . Eight of these image directories make up 
a subpicture directory. The subpicture directory consists 
of seven cells which include the same six cells as the image 
directory plus a cell for the number of images filled in the 
frame (all eight images may not be used when the subpicture 
is closed) . The system has three such directories; there- 
fore, the picture can contain three subpictures. Thus, the 
directories form one large picture directory broken into 
three sequential subpicture directories; which in turn are 
broken into eight separate image directories. (See FIGURE 5.) 
The pointer for the directories is initiated pointing to 
the header of the first image in the first subpicture dir- 
ectory and is moved by computing an offset which is added 
to the pointer as the vector generator proceeds through the 
display list. 

GPGSY provides up to 24 images contained in three sub- 
pictures, which make up one single picture. Any of the 
images can hold as many lines as the user desires up to 
the limit established by the available free core memory 
(4220 cells) . This hierarchial level has cost the user us- 
ing GPGSY a total of 165 memory cells. This storage loss 
could be reduced by about one third by loading scale, in- 
tensity, name and word count into half words and loading two 
words into one cell of the image directories. (Since 



82 



PICTURE DIRECTORY 



SUBPIC1/ IMAGE 1-1 



IMAGE 1-2 



SUBPIC2/ IMAGE 2-1 



SUBPIC3/ IMAGE 3-1 



DIRECTORY SUBPIC1 



DIRECTORY SUBPIC2 



HEADER FOR NAME 



SCALE 



INTENSITY 



DXDY 



DASHMASK 



WORD COUNT IMAGE 1-1 



HEADER FOR NAME 




WORD COUNT IMAGE 1-8 



HEADER FOR NAME 




WORD COUNT IMAGE 3-8 



HEADER FOR NAME 



SCALE 



INTENSITY 



DXDY 



DASHMASK 



WORD COUNT SUBPIC1 



IMAGE COUNT SUBPICl 



HEADER FOR NAME 




IMAGE COUNT SUBPIC3 



*DBLK1 



r DBLK2 



*DBLK21 



*DBLK31 



*SUBP1 



*WCNT1 
*TBCN1 
*SUBP2 



*TBCN3 



'Variable names used in the computer program. 



FIGURE 5 



83 



storage utilization was not a serious consideration and 
utilizing half words increases the complexity of the system 
this was not implemented in GPGSY.) Considering this savings, 
a tri-level hierarchy using the basic philosophy used in 
GPGL would cost the user approximately 110 memory cells 
per picture, or approximately 35 cells per subpicture added. 
If additional capabilities are required, such as rotation, 
this cost in storage would increase slightly. The three 
level hierarchy is quite adequate for demonstrating the 
capabilities of computer graphics to computer-oriented 
students and is adequate for most electrical engineering 
applications. Certain applications in the mechanical 
engineering field, especially those that pertain to gear 
trains and the movement of pistons and their related parts, 
may require more than the three levels provided by GPGSY. 
If these special applications are to be handled by GPGSY, the 
number of hierarchial levels of the system would have to be 
increased. 



84 



V. CONCLUSIONS 

One of the considerations taken into account in select- 
ing GPGL was the possibility of developing a single general 
purpose graphic language to handle all computer graphic 
applications. Although GPGL is a general purpose graphic 
language in that it can be used with many varied graphic 
applications, it is not suitable for all computer graphic 
applications. A mechanical engineering application, which 
would require more than three hierarchial levels, could not 
be effectively implemented with the present version of GPGL. 
Since many installations will use intelligent terminals with 
a small memory storage capacity, an all-inclusive general 
purpose language with its tremendous storage requirements 
could not be utilized by these installations. Most user's 
would use only some of the capabilities which would be 
provided by a single, all-inclusive general purpose language 
so that time and storage utilization would not be efficiently 
used. For maximum efficiency, a graphic language, which 
provided only the capabilities desired by the users, should 
be implemented. With the present state of the art, it is 
not feasible to design and create a single graphic language 
which can be used efficiently for all known applications of 
computer graphics. 

In considering whether the subroutine or syntax approach 
should be used to implement a graphic language, it was pre- 
viously mentioned that both approaches have advantages and 



85 



disadvantages. The decision as to which method should 

be used must be decided on an individual basis. Since the 

syntax method usually requires larger memory storage capacity 

and more programming expertise, it is felt that with the 

present state of the art, more installations will use the 

subroutine approach than the syntax approach. 

The basic capabilities required of a general purpose 

graphic language can be provided with the following functions 

LINE 
ARC 

ERASE 

TEXT 

ROTATE 

TRANSLATE 

REFERENCE POINT 

STORE 

FETCH 

NAME 

GPGL provides all these functions plus many optional 

capabilities. The analysis capability and user-defined 

function capability are two of the more important options. 

The analysis capability is explicitly provided so that the 

user can do more than just draw pictures. The ability to 

program user-defined functions in GPGL gives the user the 

needed flexibility to handle many graphic processes which 

could not be as efficiently handled without this capability. 

GPGSY, the implemented subset of GPGL, contains only 

five of the above required functions. The additional five 

functions should be added to GPGSY if the system is going 

to be used as an effective graphic system. These additional 

functions can be added without any great difficulty, but 






86 



the storage requirements would be significantly increased. 
In order to provide the user-defined function capability, 
the necessary teletype functions would have to be implemented. 
These include the user-defined instruction set, the teletype- 
system commands, the teletype-editor commands and the key- 
board mode command. Implementing these functions would be 
a more difficult task than completing the basic requirement 
subset. The implementation of these functions and the user- 
defined functions, which would be created, would greatly in- 
crease the storage requirements of the system. In order to 
develop GPGSY into a true interactive, general purpose 
graphic system, these additional functions should be 
implemented, even though these changes are costly in storage 
and man hours . 

The tri-level hierarchy of GPGSY provides a capability 
which is adequate for many applications. The cost of over- 
head can easily be reduced to 110 memory cells per picture 
(where three subpictures and 24 images are in a picture) . 
The ease provided in manipulating the images and subpictures, 
which form the picture, is well worth this cost. Consider- 
ing the trade-off between the necessary overhead in imple- 
menting hierarchial levels and the flexibility provided, 
the selection of three hierarchial levels appears to be 
excellent. 



87 



file 


12 


i«i 




.2 




.3 




it 




,c 




l« 




.7 




.10 




.11 




.12 




13 




>1* 




.15 




>U 




.17 




20 




21 




.22 




23 




.2* 




25 




.26 




.27 




30 




.31 




.32 




.33 




.3k 




.35 




.36 




.37 




• *0 




.»1 




.♦2 




.*3 




• 44 




>*5 




• »6 




,»7 




.50 




•51 




• 58 




.53 




.5* 




. = 5 




.56 




.57 




.60 




.6 J 




.62 




.63 




• 64 




• 1 




.2 




.3 




>•> 




, = 




.6 


? 


.7 


2 


• 10 


2 


• 11 


2 


.12 


? 


.13 


2 


.1* 


2 


.15 


2 


.16 


2 


.17 


2 


2: 


2 


21 


? 


22 


2 


23 


2 


2* 


2 


25 


? 


26 


2 


27 


2 


30 


2. 


31 


2. 


32 


2. 


33 


2< 


3* 


2< 


35 


2. 


36 


2. 


37 


2. 


*0 


2i 


*1 


?. 


"2 


2. 


»3 


2. 


M 


2. 


*5 


2. 


*6 


2< 


»7 


2. 


5: 



GPGSY VERSION 1 REVISION * CHEATED 06 DEC 71 DATE PAG r 0C01 

EXPUNGE 
TITLE GPGSY 
ENTRY GPGSY 

t external entries- »ofst;prints the string on teletype «hich follo.s the call 

t - *Icc:eetches a char, input by teletype ([n ar> 

t - »WTi:HANOLES The BACKGROjND.vJHILF * ICC handles f9reground 

C ALL IN AMR-X (MONITOR) 

C INITIALIZATION 

C DBL<1* "EAD eF DIRECTORY 

t ROUTINE ENABLES SC9PF/ AvG,FRAMECL»CK, FUNCTION SWITCHES 



"PG5Y! 








ARMD 


SAVEAR 


MDAR'F 


FCLER 


ARMD 


CL<PV 


MDAR'F 


DBL«1 


AR"D 


DBL< 


MD-IO'L 




60*00</H 




moic'O'L 




OOOtOVH 




MD11 


SCAL 


MD36 


INTENS 


MDIO'9'L 




10C0UH 





[SAVE THE AR REGISTER CONTENTS 



CteAO LOC 9F HEAD 9F DIRECTS^Y In D°L< 



CSET SCALE 
CSET INTENSITY 



C DRAW TEXT ROUTINE 

C FFLAG-FLAG SET TO LOAD DTEXT *iITh ENTRY ADDRESS 

t IDFLG«FLA3 TO TELL CL5C< I "AGE IS 3RAWM 

t CURFG-FLAG SET TO DRAW CURS9R 

t FLG1-FLAG USED Te KEEP FROM "SETTING MULTIPLE HITS "N DESIGNATING POINTS 

C LPFLG-FLAG USED T9 <EE° LIGHT °E'J off 1 SEC* 

C LPCNT»CYCLE C9UNTER TO KEEP LIGHT SEN OFF 

C InCTXT-INCRE^EnTS r ETCH F8R LC*i 

t R6UTINE DRA*S TEXT FSR FUNCTI9N 9NE AT A T I "E 



DTEXT: 

-DAR 

U d LS 

MDAR 

MDAR ' A 

MDAR'9 

AR-D 

ARMD'0 

ARxe'F 

AR^D 

[DRAW TEXT ROUTINE CONT. 

MDAR 

upls 

UU"P 

SSAR'F 

U p AN 

ARxe'F 

AR-D 



DTExTll 



skip: 

skipi: 





MDAR'F 

ARMD 

-DAR 

UPLS 

MDAR 

MDX9 

UPLS 

ARXO'F 

ARMD 

MDAR 

AR-D 

MDIO'O' 
20vh 

M.D10'A 

MDC7 

-DAR'F 

MDAR'A 

ARMD 

MDAR'F 

AR-D 

MDAR'F 

ARmo 

MDAR'F 

ARMD 

MDIC'A 

MDIC'O 

MDAR 

MDIR 



FFLAG 

• ♦6 

GPGSY 

"ASK5 

MASK8 

DTEXT 

FFLAG 

IDFL3 



CURFG 
• ♦2 

DTEXTl 

DFSPT 
FLG1 



LPLER 
LPNPV 
LPFLG 
SKIP 

LPC^-T 

LPMASK 
SKI^l 

LPC'-T 

One 

LPFLG 



MASK12 

ZER° 

DRTEXT 

-ASK5 

INCTXT 

DRTEXT 

77735 

TXLER 

77736 

TXLER 

77737 

CM1* 

TEN 

SAVEAR 

DTEXT 



t IF NEGATIVE UU W ° Te DESIGNATE POINT 



t V ASK TO PERMIT LIGHT PEN TuR\ 0* 



t TURN 9N LIGHT PEN AGAIN 
C TURN 9FF AVS 



C DRTEXT IS TEXT DISPLAY LIST 



C DRA* TEXT 



88 



3*1 t DRAW VECTORS ROUTINE 
3.2 

l'l \ FUNCTION FLASS-IF SLT 30 T9 ROUTINES FOR ACTION RET 

3'* C CURFG.FLAG SET TS DRAW CURSOR 

'•' C BCNT.COUNT TO CETERMINE WHICH IhaGE IS TO BE DRAWN 

3«6 t TBCNT. TOTAL WHEN ALL IMAGES DRAWN 

I'l C CONT. 10, 20*30 DEPENDING ON WHICH SjBPIC 

3, *° C FRF31.PLAG TO SHOW ]N SjBPIC? 

3'H C FRFG2.rLAG TO shOm In SUBPIC3 

||j* C IMCFG.FLAG ONCE SET DIRECTS THE PROGRAM F L Ow THROUGH I"CL8 

l'\* f SASIC VECTOR DRAWING ROUTINE, JL.1P OUT TO HANDLE FUNCTION ACTIONS AND 

I'M \ !S u Sffi!i N ?5 c 5? , ff r SH m " i 3Y LW, * a " TT F3 * EAC < IMAGE «»« - 

3.17 

3.20 DRVEC! 



A.*0 



*#** 
*.*5 
*.*6 
».*7 

♦ .50 

a.5i skip?: 

A. 52 

».53 

♦ .5a 

♦ .55 

♦ . = 6 
A. 57 
».6Q 
4*61 

♦ •62 



UU"P 


, 


MDIC'A 


Cl-1* 


MDAR 


FRA"EFG 


JSLS 


FRAMJ 


MDAR 


TTYFG 


USLS 


TTY1 


MDAR 


CURFG 


JSLS . 


PTRAC 


MDAR<F 


EOLER 


ARID 


EOLPV 


MDIO'O'L 




60A00JH 




MDAR 


TRANFG 


JSLS 


TRAN1 


HOAR 


Z00"F5 


JSLS 


zeo-i 


HOAR 


OASHFG 


JSLS 


DASH1 


HOAR 


ERASEFG 


JSLS 


ERASE1 


HOAR 


NAMEFG 


JSLS 


NAME1 


HOAR 


REF3 


JSLS 


REF1 


HOAR 


0ATA1 


HOXO 


MZER9 


JPLS 


• ♦2 


JUHP 


SKJP2 


- DAR>L 




HQ05 


0ATA1.1 


AR"D 


77756 


1 ROuTJNF CONT ( 




ARXO'F 


, 


AR-0 


eolfg 


HOAR 


bcnt 


MDX9 


CONT 


J°LS 


•♦2 


JU-P 


SKIP2 


HOAR 


3CNT 


ARLS 


2 


NOPP 




HDAE 


BCNT 


HDAE 


BCNT 


AR"0 


TE"P* 


HDAR'F 


DBLK1 


HDAE 


TE"P* 


AR"0 


TEMP* 


HOAR>I 


TFMP* 


mdxo 


MZERP 


JPLS 


VI 


HOAR 


FRFG2 


JPLS 


SKIP? 


MDAR 


FRA"EFG 


JSLS 


FRA-3 


HOAR 


FRFG1 


JPLS 


TT 


JJMP 


SKIP2 


HOAR 


[HCFG 


JPLS 


IMCL1 


MDll'I'X 


TEMP* 


MD06'rx 


TEMP* 


MD07' I 'X 


TFMP* 


MDAR'X 


TEMP* 


MOIO'6' I 


TEMP* 


MDAR'X 


BCNT 


MDIR'X 


77756 


HOAR'S 


EOlFG 


JPAN 


• -1 


MDIO'A 


MASK1* 


JU-P 


TT 


HOAR 


9CNT 


ARMQ 


TBCNT 


ARXO'F 




AR-0 


BCNT 


AR M 


FRF31 


ARHQ 


FRF32 


HOAR 


One 


ARr-D 


IDFLG 


HOAR 


SAVAR 


MOIR 


DRVEC 



c turn off lcg 



3.21 
3.22 
3.23 
3.2* 

3.25 
3.26 

I'll JS ^ S • PTRAC C CURSOR AND °EN TkACKlNli ROjTpE 

3«30 MOAR'F FAi vo 

3.31 

3.32 

I'll OOVH CTU P N g N lr|A j N 

*«3* HTAR TDivrr 

3.35 
3.36 
3.37 
3-*C 
3.*1 
3.»2 
3. A3 
3.** 
3.A5 
3.*6 
3.*7 
3.50 

I'll " ,JXB M ZE"8 C NO WORDS IN DISPLAY LIST Ju*P S<IP2 

J"- 3 ? JPLS .*s 

3.53 

3.5* 

3.55 

3.56 

».l 
*.? 

l',l '" °' f F J rm CL09R THAT L9A0S ^EGIST'RS AnD "RA«S 

*.5 

*.6 

».7 

»»10 

♦ •11 
*. 12 
A. 13 

*• 1* 

• •15 
*.16 
*.17 
*.20 
A. 21 
*.22 
*.?3 
*.2* 
*.25 
».26 
».?7 
».30 
*• 31 
».32 
».33 

a. 3* vi: 

*.35 

A. 36 V2! 

».37 



CL9AD INTENSITY FOR THIS Image 



Z'Z? iOO/'I'X TFMP* CL OAD DXDY F 9 R THIS IMAGE 

*•*! MDAR'X TEMP* 

till ^iO'B'I TEMP* [IF Dashmask IN SET DASH -ODE 

"•"J »■*• MOAR'X STnT 



C DRAW VECTORS 



89 



I'l t FRA* E FUN'CTISN 

5.2 

5.3 



5.'* ! £2c2lM SET .hfn BFF* r^ UGH " 9jT,NE 9NCE AFT " F '* ST LIGHT pr N HIT 

5.' I cBKJBftJS m^V^'' BelNG CL,S " * N ° ANY P9EV ' 9 '^ s ^s 

j|8 c ^yS^i'JA^WftfSW? IM * GES rN ~ E S - PIC * RE CL9S " 

t TBCNS.CfUNT 8F SuB°ICS * 10 IN SEC9ND SuBPIC 



5.13 
5.1* 
5.15 



[ C 9 9 U U N T rir C ^ E SE , S t , ?U s T UB e p ^ c S ^ P '^:^ «S JHE W, 9 ,E BV ST9RJN5 THE „, 
5.16 t TME 0IRECT9RY. GE " UNT ™* T IS JSE0 F9S T *E 8FF SET T 9 

frami: JUM p 



5.20 

":.ai 

= •22 
5.23 



5.26 
5.27 
5.30 
5.31 



■ 36 



= .55 
5.56 
= .57 



6.12 



6.33 



ARX9' 

ar-d jcf: 



*?/R FRA-EFG 

5.2* "!2. x 2 9NE 

25 



J P LS FR1 

M9AR FFGl 

JPLS END2 

"OAK 9NE 



ARh FF31 

5«32 STRING > J SR ,SFST C P '" S ' T VI* TElETYPF STRING 

till , S U?PIC 1 C19SED, SUBPIC 2 BPFNEO 

^•35 Fl: 



AR-c |g*J I F ETCN WORD C9JNT 9F CURRENT SL6-IC 



5.S *r° tw c>.t 

5 *3 * RXB,f " 

5.*5 „** P^* [ADDRESS ?F T-<E HEAD 9F DIRECTORY 

5.„ « M TE1P1 

111 "0* R 
5 .5C 



TWEN 

AP"D CPNT 

e, 5l 9VER: -DAR ,„. 

5.52 A ^* f , *|« [ L99P WHICH ZER9ES INTENSITY 

I'.tl ^P'* CSNT1 

-5AR TEMP1 

«DA£ six 

*R"C TEMPI 



5.60 ^3X9 

? ' 61 JPLS 

5.62 ARXB'F 



TAR C « vT1 



TEN 
8VE 1 ? 



ARf-D CPNT1 

END2 



5.63 

5.6* J;J> .p 

£|* C F «A«E FUNCTION C8NT. 

M ™S TW 9 A " ErG [ £"2?"" «*^ E S CL3S.N3 So = P,C2 - 

f»5 JPLS ^| t AND 8PEVING SuBPIC3. 



6.6 
6.7 

6« 1C 

6.11 D 9 '*E 

0*11 .nun __ 



MDAR F F3? 

JPLS £ ND? 



AP"D FF32 



6«13 STRING ' * PrST C P "' N ' T STRING That F'ftLL8*S 

t SuBPIC 2 CL9SED, SJB=IC 3 ePfNED 

** 16 F2! M'MD 

6.17 "g*? WC9NT 

ARrD »(CNT2 



6.17 
6.20 
6.21 
6.2? 
6.23 
6.2* 
6.25 

£•26 :::" -cost 



M =AE TWCNT 

A P"= TkCNT 

M 3*S TBCVT 

APT T3C^2 

ARX9'F 

ARHD 

MDAR-F DBL<21 



6.27 
6.30 

6*32 >OAR 



^OAE Tw , 

AR-D TEMPI 



ARHD C9NT 



6.3* M " P 8VER 

6-35 FR2; JPSR 

6*36 STRING • 8FST tPRlNT STRING THAT F8 L L**S 

lll 7 f ALL FRA-r S FI LL E D 

6.*1 
6.*2 
6.»3 
6>** 
6.*5 
6.*6 
6.*7 
6.50 
6.51 

< : *3 END2: gij 



"3AR'F D a TA j 

^AE T <NT 

-3A E WC9NT 

''DAE 9me 

A"f-D TEHP5 

MDAR ^ AS<9 

AP-D'I TEmp=; 

-Dar TWCVT - 

HDAE Tw3 

AR^D twc.T 



90 



7.1 

7.2 

7.3 

7.» 

7.5 

7.6 

7.7 

7.1C 

7.11 

7.12 

7.13 

7.1* 

7.15 

7.16 

7.17 

7.20 

7.21 

7.?2 

7.23 

7.?* 

7.25 

7.26 

7.27 

7.30 

7.31 

7.32 

7.33 

7.3* 

7.35 

7.36 

7.37 

10.1 

10.2 

10.3 

10.4 

10.5 
10.6 
10.7 

10.10 
1C11 
10.12 
1C13 
1C1* 
10.15 
10.16 
10.17 
10.20 
10.21 
10.22 
1C 23 
10. 2-. 
10.25 
10.26 
10.27 

10. 30 

10. 31 
10.32 
10.33 
1C 3* 
10.35 



10. 

10, 

10, 

10, 

10. 

10. 

10. 

10. 

10. 

10. 

10. 50 

10.51 

10.52 

10.53 

10. 5* 

10.55 

10.56 

10.57 

10.60 



36 
37 

• C 
*1 
*2 

♦ 3 
»* 
*5 
*6 
»7 



t frame 3 function 

t P9UTINE USED T9 CHANGE BCNT< IMAGE COUNT) T9 THE C9RRECT FIGURE 

IN 9RDER T9 C9~PUTE THE CORRECT OFFSET TO THE DIRECTORY BECAUSE 
C *LL TEN IMAGES PER SuBPIC ^IGHT n9T BE USEfc. 



FRA-3: 


jjkp 


t 




MDAR 


BCNT 




MDAE'N 


TEN 




JPAN 


• ♦2 




JUMP 


FR5 




MDxe 


MZERB 




JPLS 


.♦2 




JUMP 


FR5 




MDAR 


9NE 




ARMD 


FRFG1 




MDAR 


TEN 




AR«D 


BCNT 




MOIR 


FRA-3 


FR5: 


MDAR 


FRA^EFG 




HOXB 


Tw9 




JPLS 


FR6 




MOAR 


TWEN 




ARMD 


BCNT 




MDAR 


ONE 




AR«D 


FRFC1 




ARMD 


FRFG2 




MDIR 


FRA"3 


FR6: 


ARXO'F 






ARMD 


FRFG1 




MDIR 


FRA"3 


t NA«E 


FUNCTION 





r lTC5» 6 ;f5 T " <FEP r,e " Pt? ^ T I^G THE TELETYPE "ESSAGE EACH ENTRY 

C NAMER-CELL *MERE N*~E IS F9R"E- 

t CNTER-CPUNTER TO C^ECK ON Njmjer 9F CHARS. ENTERED 

t '-BAOR.AORESS OF HEACER OP I^aGF ->IRECTORY °P"\" 

t ICFG-FLAG SET IN w3L0P WHICH SHPwS ALL IMAGES IN SJBPIC ARE CLOSED 

t ROUTINE CALLS FOR NA-£ OF Im A3 E TO BE INPUTTED. AND STORES IT - 
C IN HEADER 9F IMAGE DIRECTORY ' 

NA-E1! 



STRING 



again: 



Nil 



JU-P 


, 


MDAR 


TYPFFG 


JPLS 


AGAIN 


MDAR 


9NE 


AR*D 


TYPEFG 


JPSR 


«PFST 


5 CHARS. 




MDARH. 




JJ M P 


HAITI 


ARMD 


tWTt 


JPSR 


• ICC 


AR-D 


TEMPI 


MDxe 


FIFT 


JPLS 


• ♦2 


JJMP 


9VER1 


MDAR 


CNTER 


MDXO 


ZER° 


JPLS 


Nl 


MDAR 


TEM°1 


ARLS 


30 


NOOP 




MDAR'O 


NAMTR 


ARMD 


NA1ER 


MDAR>X 


CNTFR 


JJ M P 


AGAIN 


MDAR 


CNTER 


MDxe 


9NE 


JPLS 


N2 


MDAR 


TEMPI 


ARlS 


22 


N99P 




MDAR'O 


NAMEP 


ARMD 


NamER 


MDAR'X 


CNTER 


JUMP 


AGAIN 



t PRINT INSTRUCTIONS 3Y TELETYor 



|\ 5»T1 



t JJM= TO WAIT ROjTINE LO'DEJ 

[ FETCH TELETYPE CHAR. (In AR ON RETURN) 



11.1 
11.? 

11.3 
11. » 

11.5 

11.6 

11.7 

11. 1C 

11.11 

U.l? 

lt-13 

11.1* 

11-15 

11«1* 

11.17 

11. 2C 

11.21 

11.?? 

11.23 

ll.?* 

11. ?5 

11.26 

11.27 

ii. sr 

11.31 
11.32 
11.33 
11.3* 
11.35 
11.36 
11.37 
11««C 
11. *1 
ll.*? 
11. *3 
11**4 
ll.»5 
11. «6 
ll.»7 
11. 5C 
11.51 
11.52 
11.53 
11.5* 
11. 55 
11.56 
11.57 

11. 60 
11.61 
11.62 
12.1 
12.2 
1?.3 

12. *■ 
12.5 
12.6 
12.7 
1?.1C 
12.11 
l?.l? 
1?«13 
12.1* 
12.15 
12.16 
12.17 
12. 2C 



t NA*E FU'-CTIBN C8MT1 



m2: 




1DAR 


CNTER 






MDAR 


CNTER 






mdxb 


TW8 






JPLS 


V3 






MDAB 


TFMPl 






aRlS 


I* 






N98P 








1DAR»8 


NAMER 






AR^O 


NAiER 






OAR'X 


CNTER 






JJ*P 


»GAJK 


\3: 




-OAR 


CNTER 






13X8 


Three 






JPLS 


N* 






1QAR 


TEMPI 






ARLS 


6 






N*?P 








*OAR "« 


MAiER 






AR-0 


SAl-ER 






MOARiX 


CNTER 






JU^P 


AGAl\ 


».»: 




•Oar 


CNTER 






<Oxp 


FfljR 






JPLS 


N5 






OAR 


TEiPl 






OAR'6 


\A1ER 






AR"; 


NA-lER 






-DAR'X 


CNTER 






JJCP 


AGAIS 


v . c • 




JPS* 


$pfst 


STRING 


' 






°\l_v 


FIRST 


FlVt CHAR, 


• ACCEPTF3 


"VER1: 




J°SR 


*3L" d 






OAR 


ICFG 






JPLS 


I"CLP 


\6: 




OAR 


NAV.ER 






ARO' I 


wba;r 






OA* 


1CFG 






J°LS 


FINIS 






-OAR 


WPA^R 






*DAt 


FIVE 






ARO 


TE^ r 3 






OAR 


"<cr t 






w: 1 1 


TE«°3 






jj^p 


FI\IS 


[ NA^F 


FUNCT] 


!5\ cesT. 




ttPll 




J°SK 


C 8 F S T 


CTO[v 3 


1 






ALL 1 

t 


-A'FS 


JSE~ THIS 


Rjgpic 


r If 1$: 




JPGk 


."F^T 


STRJN3 


' 






I-AGE 


CLPGE 


D#»Eu I'-a: 
ARxf'F 


iE "PE'-EC 






ARO 


\AO' 






AR^D 


na-'ti 






AR"C 


C« T^R 






ARO 


TvsEF" 






13IR 


NA-E1 



C T a, » 1ASV CHARj. t NT£Rf3 



t ERR^R ALL r»".t-, ^SL3 



t I v A-r CLSSE? *S_,. PHIVTE: 



92 



•OAR 


REFG 






JPLS 


RC9" 






MDAR 


TRANFG 






JPLS 


TRATY 






MDAR'L 








UU"P 


"AIT1 


C L?AD JU"P T°- *A)T R'.jTINE I 


N f 


AR~D 


*WT1 






UPSR 


• ICC 


C FETCH TELETYPE CHAK. 




AR~D 


TEMPI 






OAR 


linefg 






JPLS 


• ♦2 






JJ-P 


.♦5 






OAR 


TEMPI 






OX9 


FIVE 






U = LS 


• ♦2 






uu^p 


FlNll 






MJAR 


TEMPI 






MDXB 


FIFT 






JPLS 


SKJP2? 






OAR 


TTVCNT 






OX9 


TWELVE 






JPLS 


• ♦2 






JJ"P 


• ♦2 






JJ"P 


ERR? 






arxo'f 








ARI-D 


TTVCNT 






MJAW 


REFG 






JPLS 


Rf9"P 






OAR 


TRAVF3 






JPLS 


TT9-P 






JJ'-P 


C°wP 







1 3, 1 C TELETYPE FUNCTION 
13.2 

I 3,3 C PTCORDi. COORDINATES OF POINT ONE 

l 3 '* I PTC0RD2-C00RDINATES 9F POINT TW9 

l3 / 5 c PTC'.T-POINT C9L/NTER USED TO GO TO CORRECT ENTRY 

1 3 «6 t TTYCNT-TELETYPE INPlT COUNTER 

I 3,7 t LF31-USED IN OESPT T9 Sh = w TELETYPE END POINT 

13,1C t TRANFG1.FLAG jSEO IN TRAN TO Snflk =9INT REC r IvFD 

J3«ll C ERRFG- FLAG SET IN Ch£Ck. ROUTINE T? SH9* EKR9R~IN TTY 

J3.J3 [ ROUTINE PEROTS TELETYPE ENTRY INSTEAD OF NORMAL. LIGHT PEN ENTRY - 

13.1* C OF POINTS FOR L I NE* TRAN, R^F. SENDS LINE END PSINTS T9 DFSPT TO - 

13,15 c L! *3 I NT S THE DISPLAY LIST AND L°AD IMAGE DIRECTORY. 

1 3 • 1 6 

13.17 TTYi: j Ur p 

13.*21 STRING • JPS " * 8rST C PR,NT ISST " J CTI9NS 3Y TELETYPF 

l3 '22 INPUT POINT UC OCTAL DIGITS) 

13.23 • 

13«2» 

13.25 

13.26 

13.27 

13.3C AGAIN2: 

13.31 

13.3? 

13.33 

13-3* 

13.35 

13.36 

13.37 

13.40 

13. 41 

13. 02 

13. o3 

13.44 

13. »5 

13.06 

13. 47 

13. 5C 

13.51 

'.3.52 

13.53 

13. 54 

13. = 5 

13. 56 

13.57 

13. 6C 

13.61 

13.6? 

13.63 

1*«1 C TELETYPE FUNCTION CONT 

1*.? 

1».3 S<IP2?: 

1.4.4 

1».5 

10.6 

1*.7 

10. 1C 

1*«11 

l*.l? 

14.J3 

l».l* 

1»»15 
1»»16 
10.17 
1».2C 
1»»21 
14.22 
1».23 

14.25 ti: 

14.26 

lo.?7 S<Ip?3: 

14.30 

1**31 

14.32 

14.33 

14.34 

|4.35 

14.36 

14.37 

14.4C 

l*.4l t?: 

14.42 

10.03 C8"P: 

14.44 

14.45 

I0.06 T3: 

1».»7 STRING ' 

14. SC InPJT ne 

10.51 • 

10.52 

10.53 

1»«5» 

14.55 

10.56 ceMPi: 

1».57 
14.60 

10.61 
10.62 



JPSR 


ChECk 


OAR 


ERRFG 


JPLS 


ERR? 


MDAR 


TE" P 1 


MDAR' A 


SEVEN 


AR-D 


TE-PJ 


OAS 


PTC T 


JPLS 


S<IP?? 


MDAR 


TEMPI 


13AR»8 


PTC"RD1 


ar-: 


OTCRTl 


OAR'X 


TTYCN T 


M*)xe 


T^ELVf 


JPLS 


• ♦2 


JJ"P 


Tl 


MDAR 


PTC°R?1 


ARLS 


3 


AR"D 


PTCRD1 


JJ^'P 


AGAIN? 


mDaW 


TEMPI 


MDAR '9 


PTC9RD2 


AR-D 


PTC9RT2 


MDAR'X 


TTYCNT 


MDX9 


TWELVF 


JPLS 


.♦2 


JU~P 


T2 


MDAR 


PTC5RD2 


ARLS 


3 


ARO 


PTC9RD2 


JJ>P 


AGAIN? 


OAR 


PTC T 


UPLS 


C?""P1 


MDAR'X 


PTCNT 


UPSR 


*OFST 


:nd pointiic 


PCTAL DIGI1 


ARxO'F 




AR-D 


PTCRD2 


uu-p 


AGAIN? 


MDAR 


ONE 


ARO 


LFG1 


MDAR'X 


PTCNT 


UUMP 


UU 



t Ch£C< CHAR.T3 SEE IF DIGIT 
C ERR^R S° UU V, P T"t E*R2 



:nd 



93 



ARXB'F 




AR'D 


PTC V T 


JJfP 


ERR* 



15.1 t TELETYPE FUNCT1N COST. 
15.2 

•3 FJNJ1: AUXB'F 
15«* ARKO LISEFO 

15«5 A-RrD TTYFS 

15.6 ARMD PTCBRD1 

5.7 ARHD PTC9RD2 

5.10 ARTO PTCNT 

5.11 1DIR TTYl 
5.12 

5.13 RC9": "OAR 8NE C THIS P9RTI9N HANDLES R£F FijnCTIBN 

5.1* ARHD PTCNT 

5. 15 JUhP AGAIN2 

5.16 RC9-P: MDAR PTCBRD2 

5.17 MOAR'A 1ASK6 
5.23 AR-D NU"32 

5.21 ARxfl'F 

5.22 ARMD REFG1 
5«23 jurp FIMtl 
5.2* 

5.2= TRATY; >Oia 9M£ [ THIS PBRTI9N ..ANCLES TRAN F5NCTI9N 

5-26 AR-D PTCVT 

5.27 JU-P AGAIN2 

5.3C 

5.31 TCBrP: rDAW PTC*RD2 

5.32 -DAR'A 1AS*6 

5.33 AR-D NUVB2 
^•3* ARXB'F 

5«35 AR-D TRANFG1 

5-3* JJKP FIN II 

5.37 

5.»C ERR2! 1DAR LINCFG [ ERR^R HANDLING °ART 

5.»1 JPLS .*2 

5.*? jj-P ERR3 

B.%3 JPSR *9FST t PRINT STRING F9R LINE ERR9R 

! = .•* STRING ' 

• *5 ERRBR.InPuT FIRST END PBINT AGAIN (10 BCTAL DIGITS) AND C/R 
.k6 ' 

15. *7 

• 5C 
15.51 
. «52 
15.53 ERR3: JPSR *BFST C PRINT STRING FBR THAN AND REF 

•5* STRING ' 

.55 ERRBR#lNPu T P9INT AGAIN (10 9C T Al_ DIGITS) AND C/R 

.56 ' 

.57 -DAR BNE 

15. 6C AR-D PTCNT 

15.61 ERR*: ARxS'F 

15.62 AR"D ERRFG 
.63 AR-D TTYCNT 

15. 6* JJfP AGAIN2 

16.1 t ERASE FjNCTIBN 

16.2 

16.3 C RBUTINE SETS LIGHT F£N PIvBT F°R ERASE. TJ'-JNS LtG"T PEN 3N »• 

1*.» t AND GIVES APPR6PRIATE INSTRUCTIONS T9 USER. 

16.5 

16.6 

16.7 

16. ID 

16.11 

16.12 

16.13 

16.1* 

16.15 

16.16 

16.17 

16. 2C 

16.21 

16.2? 

16.23 

16.2* 

16.25 

16.26 t ERASE LIGHT pen HANDLER 

16.27 

16. 3C t oc'-T-cBijNTR -Jlc* SmBhS aHAT I-ASE IS CURRENTLY BEING DRAxn 

16.31 C TwCNT-TetAL -B'C CBjNT IN DISPLAY LIST .hen LAST SjBPlC CLDSEC 

16.32 t DATA1. HEADER FBR DISPLAY LIST 

16.33 t C9L<-ADDRESS 5F HEADER FBR DIRECT9RY 
16.3* 

16.35 t RBUTINE LBCATES WHICH ["AGE IS BEING REFRESHED * T T '"E 3F "'C* 

16.36 t BY 9CNT AND ERASES THE ENTIRF I-AGE 
16.37 

16. »0 Elpler: 

16. «1 AR-D SARI 

16. »2 1DAR 0ATA1 

J6. »3 iDxB «ZER» 

16. *» JPLS El 

16.»5 JjrP END3 

16. »6 El: *DAR BCNT 

16. *7 -DX8 9NE 

16. 5D JPLS E2 

16.51 MDAR'F 3ATA1 

16.52 ARHO TE""5 

16.53 JJ-P AGAIN3 
16.5* 

16.55 r FRASE LHT PEN HANDLER 

16.56 

16.57 E2! 

16.60 
16.61 
16.62 
16.63 
16.6* 
16.65 



erasei: 




JJ-P 

"DAR'F 

AR-D 

-DIC'B'L 

20JH 

1DAR 

JPLS 

JPSR 




ELPLER 

LPnpv 

TYPEFG 
FINI2 

«BFST 


STRJMG ' 










SELECT 


I1A 


GE TS ERASE 

•OAR 
AR-D 


*ITh 


LIG«T PfN 

9NE 
Tysrr-, 


fin|2: 




"DIR 




ERASEI 



yDaR 


BCNT 


ARLS 


2 


N9SP 




"DAE 


BCNT 


-DAE 


BCNT 


«1DAE'N 


SIX 


AR-0 


TE1P1 



94 



17«1 t ERASE LIGHT PEN HANDLER COM. 

1"«2 

17.3 

17.* 

17.5 

17.6 

17.7 

17.10 

17.11 

17.12 

17.13 

17.1* 

17.15 

17.16 

17.17 

17.20 

17.21 

17.2? 

17.23 

17.2* 

17.25 

17. ?« 

17.27 

17.30 

17.31 

17.32 

17.33 

17. 3* 

17.36 

17.36 

17.37 

J7.»0 

17. »1 

17. »2 

17. »3 

J7. »» 

17. »5 

17. »6 

17. *7 

17.50 

17.51 

17.52 

17.53 

17.5* 

17.55 

17.56 

17.57 

17.60 

17.61 

17.62 

17.63 

20. 1 

?:■? 

?c ' 3 C '<U M Bl-NiJNBER T9 SU3TRACT T9 BE SUBTRACTEO [\ SJ32 

?Z,k l 'U- B 2-NL-BFR «kich Nj-91 IS SJ=TRACTED FRg- | N Soi? 

H'l | OxDy. L ?C *ME*E DIFFERENCE IS X (0-1* SITS) AND y (15-29) 13 ST9RED 

2C6 C -9vr 3 - SET IF DISPLAY LIST nWi *AS A -«v E 

2-«7 t R£FPT- CELL IN »hJCk REFFRENC- p=INT IS 3T°Rr 

2C1C t WBADR-ADBESS 9F mE'CER BF 9PEN t-AGF 

20.11 

\i'\l \ ? 9 " T, i E J- 9 *" subtracts »ld reference rsint fr«- t-e n". 9>.f designated - 

? ?" 13 C * VD L^S RESVLT P Image DIRECTORY AS 3FTSET jNCRr-fN?(T9 [ . 

20.1* C 07 REGISTER, AND SUBTRACTS SA-E RESULT U<>1 EACH «*«0 IS I-AGE "sPLa{ LIST. 

2C15 r LOADS N£k REFERENCE PJlNT In Rr F oT * " "* JISPLAY LIST. 

2C16 

20.17 «EFi: 

20.20 

20.21 

20.22 Rce-iPli 

2C 23 

?0.2» 

20.25 

20.26 

20.27 

20.30 

20.31 

20.32 

20.33 

20.34 

ll'll •£** -'BLfP t JJMP T9 FIND em BPEN PAGE 

2C.36 MDAR yai"s 

20.37 

?C.»0 

\l\\\ ]pil' S °li K C SJ9T,ACT T9 hEa:) 9F 0IRECT9RY ADDRESS 

20. »3 

2C*» 

20. »5 

20**6 

2C*7 

20.50 

20.51 

20.52 

20.53 

20. 5* 

20.55 

2C 56 

20.57 

2C 60 

20.61 

2C62 

2C63 





MDAR 


DBL* 




H3AE 


TEMPI 




MDAE'N 


9NE 




ARMD 


TEMPI 




MDARU 


TEMPI 




ARMQ 


TEMP* 




MDAR'X 


TEMPI 




-JAR'F 


D3L<21 




-DX9 


TEMPI 




JPLS 


.♦* 




MDAR 


TWCNT 




ar^d 


TEMP* 




JUMP 


E3 




"DAR'F 


DBL<31 




MDX9 


TEMPI 




JPLS 


• ♦* 




MQAR 


TWCNT 




ARMD 


TEMP* 




JJ-P 


E3 




-DAR 


FRA-EFG 




JPLS 


• ♦8 




JJMP 


• ♦5 




MDAR 


TEMP* 




MjAE 


TWCNT 




AR"D 


TEMP* 




JJ-P 


E3 




MDAR 


TEMP* 




ARMD 


TEMP* 


F3: 


MDAR'F 


3ATA1 




-DAE 


TEMP» 




AR-D 


TFMP5 


A3AIN3! 


MDAR' I >H 


TF-°5 




-DAR'A 


9NE 




JPLS 


E* 




MDAR' I 


TEMP5 




MDAR'A 


MAS<10 




ARMQ 'I 


TEMP5 




MDAR'X 


TEMP5 




JJ-P 


AGAIN3 


-»: 


MDAR' I 


TE-P5 




MDAH'A 


MAS<10 




ARMD' I 


TFMP5 




-DIO'A 


-AS<2 


'ND3: 


ARx»'F 






AR-Q 


TYPfFf, 




ARfD 


ERASEFG 




-DAR 


SARI 




JJMP-I 


EL°LER 


CREFFRENCE 


P"INT FUNCTION 





JJMP 


, 


-DAR 


TTYFG 


JSLS 


TTYl 


MDAR 


REFG1 


JPLS 


END 


MDAR 


ICFG 


JPLS 


I-CLP 


MDAR 


REFPT 


AR-D 


NJM91 


JPSR 


SU32 


MDAR 


NUMB1 


AR"D 


DXDV 


MDAR 


NJMP2 


ARMD 


REFPT 


JPSR 


WBLfP 


MDAR 


W9ADR 


MDAE'N 


9N£ 


AR-D 


TEMPI 


MDAE'N 


D9L< 


JPAN 


.♦2 


JUMP 


• ♦» 


ARXO'F 




AR-0 


TEMP2 


JUMP 


RO 


MOAR'I 


TEMPI 


ARMQ 


TE-P2 


-DAR 


FRamef 


J»LS 


• ♦2 


JJ-P 


RO 


MDAR'X 


TEMPI 


-DAR'F 


D9l<21 


MDX9 


TEMPI 


JPLS 


• ♦2 


JJ-P 


• ♦3 


MDAR'F 


D3L<31 


MDX9 


TEMPI 


JPLS 


• ♦» 



95 



31.1 


t REFERENCE 


°0lNT FUNCTION 


C8NT. 


21.2 








21.3 




M3AR 


THCNT 


21«* 




ARro 


TE1°2 


21.5 




JUMP 


RO 


2t«6 




nBAR 


TE-IP8 


21«7 




1DAE 


TWCNT 


21*10 




AP^O 


TEiP2 


81.11 








81.12 


ro : 


MOAR'F 


0AT*1 


81.13 




OAE 


TE1P8 


81 «1» 




A9-3 


TE1°2 


21M5 


m: 


OAR 


3X3Y 


81-16 




«KC 


NU1B1 


81.17 




MDARM'H 


TEXP2 


81.80 




•OAR 'A 


8NE 


81.81 




J°LS 


R2 


31.22 




OAR' I 


TF-P2 


21.2? 




OAR'A 


3NE 


81.8* 




JPLS 


• ♦3 


21«85 




"OAR 


8N£ 


21.86 




ARl-D 


•.9VFG 


81 •8'' 




"OARM 


TE-^2 


31-30 




*3AR' A 


MAS<6 


81.31 




ARO 


NU132 


81.32 




JPSR 


SU32 


Pl«33 




OAR 


revFG 


21.3* 




13XB 


8NE 


81.35 




JPLS 


• ♦3 


21.34 




OAR 


NUM°1 


21.37 




JJ-P 


• ♦3 


8 1 . »0 




OAR 


NUM51 


81.41 




OAR '8 

OAR'A 


9NE 
1ASK7 


81. »3 




ARf-D'I 


TEi=>8 


?!•»* 




AR*e'F 




81. »5 




ARO 


"0VFG 


31. »6 




OAR'X 


TEm d 3 


81. »7 




JJ"P 


Rl 


81.50 


92: 


OAR 


3X3Y 


81.51 




ARO 


NUi°l 


81.52 




M3AR' I 


TEMP2 


81.53 




•OAR' A 


■.AS<6 


81.5* 




ARO 


NU192 


21.55 




JPSR 


SU32 


21.56 




OAR 


NU^Bl 


21.57 




•OAR'B 


Clnl 


21.60 




ART' I 


TF-ip? 


81.61 




OAR 


.PATS 


21-62 




Oae 


T^REE 


21-63 




ARO 


TE1°1 


?1»6») 




OAR 


REFRT 


21.65 




ARO' I 


TEMPI 


22.1 


t reference • 


>9IMT C9VT. 




22-2 








82-3 


93: 


AR*p if 




22«* 




AR"3 


RFF3 


22.6 
22.7 
22.10 
22.11 




AR-D 


TTYFG 


enc: 


OAR 
ARO 
OIR 


8NE 

REFr>l 

REF1 


22.12 








28.13 


C Check FOR l 


'IS IT IN C80E 




22.1* 








22.15 


t ROUTINE C"E 


CKS TFLETvPE INPJT Afcn 


22.16 
22.17 


f SETS ERRFg 


IF A«, ERR9R is 


oetecte: 


22.20 


o-Ec<: 


JJ W P 




82.21 




0»R 


TE"P1 


22.2? 




OAR' A'L 




22.23 




77773 




22. 2* 

32.25 




13X8 
JPLS 


TX£N 
• ♦2 


28»26 




OIR 


C-<EC< 


22.27 
22.30 
22.31 




OAR 

ARO 
OIR 


ONE 
ERRFG 



C«8R0 IN 0ISPLAY LIST IS m 9ve; ,SET "SvFG 



C MAS<7«7777677777 



C THIS PSRTI8V HANDLES xO^D -.ITM E0L • 
t BIT SETfLAST .0R3 CJRRENTLY IN I*AGE) 



96 



23. 


1 


23. 


2 


23. 


3 


23. 


4 


23. 


5 


23. 


6 


23. 


7 


23. 


10 


23. 


11 


?3. 


12 


23 


13 


23 


-1* 


23 


15 


23 


'16 


23 


17 


23 


.20 


23 


-21 


23 


-22 


23 


.23 


23 


.2* 


23 


.25 


23 


.26 


23 


.27 


23 


.30 


23 


.31 


23 


.32 


23 


.33 


23 


.3* 


?3 


.35 


23 


• 36 


23 


.37 


23 


■ 40 


23 


• 41 


23 


• 42 


2* 


1 


2* 


.2 


2* 


3 


2* 


4 


?4 


5 


2* 


6 


?4 


.7 


2* 


.10 


24 


.11 


2* 


-12 


24 


13 


2* 


>1* 


2* 


15 


2* 


-16 


2* 


17 


2* 


20 


2* 


21 


2* 


22 


2*. 


23 


2*. 


24 


24 


25 


2* 


26 


2* 


27 


24 


30 


24 


31 


8* 


32 


2*. 


33 


2*. 


34 


2*. 


35 


2*. 


36 


2*. 


37 


2*. 


40 


2*. 


41 


2*. 


42 


2*i 


43 


2*. 


44 


24< 


45 


2*. 


46 


2«»« 


47 


24 


50 


2* 


51 


2* 


52 


24 


53 


2* 


54 


2* 


55 


24 


56 


8*< 


57 


2* 


60 


2* 


61 


2* 


62 


2* 


63 



t TRANSLATION FUNCTION 

C TRANFG1»F|_AG w*EN ZERO SHOWS A POINT HAS BEEN DESIGNATED 

t NU^Bl-NUMBER T9 SUBTRACT IN SU32 

C NUMBE2-NU^5ER TO BE SUBTRACTED FROM IN SUB2 

C HBAOR-HEADER OF IMAGE DIRECTORY OPEN 

C ROUTINE HAS SUB2 SUBTRACT OLD REFERENCE POINT FROM POINT DESIGNATED - 
t AS TRANSLATION DIRECTION AND D I STANCE .PROGRAM ENTERS EVERT CYCLE AFTER 
C TRAN HIT S*- IF POINTS NOT DESIGNATED YET^JUMP TO END1. 

TRANU 

TRAN2! 



TRAN3! 



JUMP 


• 


MDAR 


TTYFG 


JSLS 


TTYl 


MDAR 


TRANFG1 


JPLS 


ENDl 


MDAR 


REFPT 


AR-D 


NUMB1 


JPSR 


SUB? 


JPSR 


WBLfiP 


MDAR 


ICFG 


JPLS 


IMCL8 


MDAR 


WBADR 


MDAE 


THREE 


ARMD 


TEMP2 


MDAR 


NUMB1 


ARMD'I 


TEMP2 


ARXO'F 




ARMD 


TRANFG 


MDAR 


ONE 


ARMD 


TRANFG1 


MDIR 


TRAN1 



ENDl: 



CSUBTRACT TWO POINT ROUTINE 

t NUM31-NUMBER TO SUBTRACT 

t NU M B2-NUMBER SUBTRACTED FROM 

t ROUTINE SUBTRACTS TWO POINTS, *alf WORD AT A TJME, UPPER HALF IS X 
t COPRD« AND LOWER HALF THE V CO^RD. 



SUB2: 



JUMP 


• 


MDAR 


NUMB1 


MDAR'A 


MAS<3 


AR"D 


TEMP3 


MDAR 


NUM32 


MDAR'A 


MASKS 


ARMD 


TEMP4 


MDAE'N 


TEMP3 


ARMD 


TEMP3 


mdxo 


MZERO 


JPLS 


.♦3 


ARXO'F 




ARMD 


TEMP3 


MDAR 


TEMP3 


MDAR'A 


MAS<3 


AR*D 


TEMP3 


MDAR 


NUMB1 


ARRS 


17 


NOOP 




ARMD 


TEMP4 


MDAR 


NUMB2 


ARRS 


17 


NOOP 




ARMD 


TEMP5 


MDAE'N 


TEMP4 


ARMD 


TEMP4 


MDXO 


MZERO 


JPLS 


• ♦3 


ARXO'F 




AR"D 


TEMP4 


MDAR 


TEMP4 


ARLS 


17 


N09P 




MDAR'A 


MAS<4 


MDAR'O 


TEMP3 


AR*D 


NUMB1 


MDXO 


MZERO 


JPLS 


• ♦3 


ARXO'F 




AR"D 


NUMB1 


MDIR 


SUB2 



C MASO-0000077776 

[STORE RP 

[AND MASO WITH LP1 
[STORE IN TEMP4 



[RIGHT SHIFT 15 

[STORE RP (0-14) IN TEMP (15-29) 



[ "ASK4-7777700000 

[ OR DX (0-14) AND DY (15-29) 



97 



35. 


3 


25. 


3 


35 


* 


25. 


5 


25. 


6 


35. 


7 


?=. 


to 


35 


11 


25. 


12 


35. 


13 


35 


l» 


?5. 


15 


?5> 


16 


25. 


17 


?5. 


?: 


35 


31 


35 


33 


35 


33 


35 


2* 


35 


35 


35 


36 


35 


27 


?5 


3C 


25 


31 


~t 


32 


25 


3 3 


25 


3- 


35 


35 


25 


36 


35 


37 


35 


♦ C 


35 


• Ol 


25 


• »2 


35 


.03 


25 


M 


35 


• *5 


25 


• «6 


?5 


i*7 


'5 


■ 50 


35 


.51 


35 


• 52 


35 


53 


35 


. = - 


35 


.55 


25 


.56 


35 


• 5" 


--- 


• 6C 


25 


• 61 


26 


• 1 


26 


.2 


M 


• 3 


26 


.» 


26 


>5 


26 


• 6 


26 


.7 


84 


• i: 


26 


>H 


26 


•12 


26 


.13 


26 


•1* 


26 


• 15 


26 


•16 


36 


•17 


36 


• St 


26 


• 21 


'6 


22 


36 


• 23 


26 


• 2* 


26 


25 


26 


36 


26 


• 27 


26 


• 3C 


26 


• 31 


3fc 


32 


26 


• 33 


26 


3* 


26 


• 35 


26 


• 36 


't 


• 37 


36 


• »C 


26 


• »l 


26 


.»2 


26 


.»:- 


?6 


... 


26 


• *s 


3 6 


>*6 


56 


• *7 


26 


• 50 


36 


•51 


26 


.52 


26 


• 53 


26 


■ 5* 


26 


• 55 


26 


• 56 


36 


5? 


36 


6 3 


26 


• 61 


?6 


63 



C ZCNTER-Cf'JNTER T! CBjnT INPUT DIGITS 

C PACl-CEll »HE9E InPjT nj-ofr F?p-E3 

C ERRFG-flag SET I*. C^EC* IF ERR*R 

C WB*DR«*0"ESS 9F hE*CE" 9F DIRECTORY 6F IM»gE 8 3 EN 

t R8UTJNE ACCEPTS TELETYPE DIGITS T3 SET SCALE IN AVS FR9- 0-1 
£ SENDS INPUTTED C«A<?St T9 C«EC< FpR VERIF ICAT ISM, IF ERR?« USER - 
C "UST INPUT AGAIN 

Z99-1: jj-p . 

JPSR «9FST 
STRING ' 

INPUT UP T9 5 9CTAL D IGITS#NEGAT [ VE DIMINISHES 

AGAIM: MDAR'L 

JJ-P -lAJTl 

AR*D »'^T1 

JPSR «ICC 

AR-D TE^ P 1 

MDX8 FIFT 

JPLS Zl 

-DAR FIVE 

-D*E'N ZCNTER 

JPAN Z99-? 

MDAR FAC1 

APRS 3 

JJ-P Z99-2 

zi: -DAR ZCNTER 

-DX9 FIVF 

JPtS «*2 

Jjrp ERReR 

JPSR CHECK 

HOAR ERRFG 

JPLS ERR9R tlF ERR9R FLAG SET JUMP T9 ERR9R 

-DAR TEMPI 

MDAR'A SEVEN 

-DAR'9 FAC1 

ARrC FACl 

MDARiX ZCNTE9 

MDXB FIVE 

JPLS -*2 

JUfP AGAIM 

MDAR FACl 

ARLS 3 

AR-D FACl 

JJ-P AfiAlNl 

C Z99M FJNCTI9N C9NT. 
Z99-2! 



Z2: 



Z3: 



Z»: 
Z5: 



HOAR 


FACl 


ARLS 


17 


N99P 




AR"C 


FACl 


JPSR 


mBLOP 


MDAR 


ICFG 


JPLS 


[MCL8 


MDAR 


«5»3R 


MDAE 


ONE 


AR-D 


TE- = 3 


-DAR' J 


TE- 3 


-DAE 


F AC1 


AR-D 


FACl 


-DAR 


ICFG 


JRLS 


Z* 


-DAR 


MXSCL 


MDAE'N 


FACl 


JPAN 


.♦2 


JU-P 


Z3 


-DAR 


-XSCL 


AR-D' I 


TEMP3 


JJ-P 


Z5 


-DAR 


FACl 


JPAN 


• ♦2 


JU-P 


Z» 


MDAR 


ZER5 


AR-D'! 


TEMP3 


JU-P 


Z5 


KDAR 


FACl 


AR-D' I 


TEMP3 


ARxe'F 




AR-D 


ZCNTER 


ARMD 


FACl 


ARMJ 


Z99MFG 


MDIR 


Z99-1 



ERR8R! JPSR $9F?T t ERR°R S? PRINT F9ll9»In3 STRING 

STRING 1 

INPUT JP T6 5 SCTAL DIGITS (0.37777) AND C/R 



ARX8'F 




AR-C 


ERRFG 


AR"D 


ZCNTER 


AR-D 


FACl 


JJ-P 


AGAIM 







JJ-P 


••1 



hAlTl: C D9 N8THING L99° 'AIT1NS F9R $ICC 

C T9 FETC-- A TELETYPE ChaR. 



27. 


1 


3?. 


2 


!»« 


3 


27. 


* 


27. 


5 


27. 


6 


27. 


7 


27. 


10 


27. 


11 


27. 


12 


27. 


13 


27. 


1* 


27. 


15 


27. 


16 


27. 


17 


»7. 


2C 


= 7. 


21 


27. 


22 


27. 


23 


27. 


2» 


57. 


25 


27. 


26 


27. 


27 


?7. 


3C 


?7. 


31 


'7. 


32 


27. 


33 


?7. 


3» 


27. 


35 


27. 


36 


27. 


37 


27. 


«C 


27. 


»1 


P7..2 


27. 


»3 


27. 


*» 


27. 


*5 


27. 


.6 


27. 


• 7 


27. 


50 


27. 


51 


27. 


52 


27. 


53 


27. 


5* 


27. 


55 


27. 


54 


27. 


57 


27. 


60 


27. 


61 


27. 


62 


27. 


63 


27. 


6* 


27. 


65 


30 


• 1 


5-C 


• 2 


3C 


• 3 


3: 


• k 


30 


.5 


3C 


.6 


3: 


.7 


30 


.10 


30 


• 11 


30 


•12 


30 


•13 


30 


•1» 


30 


• 15 


3)0 


• 16 


3C 


.17 


30 


• 20 


30 


• 2'. 


30 


• 22 


30 


.23 


30 


.2-. 


30 


• 25 


30 


• 26 


30 


• 27 


3: 


• 30 


30 


• 31 


30 


.32 


3: 


• 33 


30 


• 3" 


3: 


.35 


30 


• 36 


30 


• 37 


30 


• - : 


30 


•»! 


30 


• «2 


30 


.•3 


30 


.»» 


3! 


.»5 


30 


• »6 


30 


.»7 


30 


.50 


30 


• 51 


30 


• 52 


30 


.53 


30 


• 5* 


30 


• 55 


30 


• 56 


X 


.57 


30 


.60 


30 


• 61 


30 


• 62 


3C 


• 63 


3'. 


•6» 


30 


.65 



C DASH FUNCTION 

t «BADR-ADDRESS OF HEAD OF DIRECTORY 9F IMA3E OPEN 

C ROUTINE LOADS DAHMAS< IN I"AG£ DIRECTORY OF OPEN I-AGE AND RESETS DaShFG 

cashi: 



m: 



f[ki3: 

c i-age closed routine 

t ICF3-FLAG «-iICN IS SET IN HBLOP nHICH SHO.S ALL !"»GES ARE CLOSED 

t I-CFG-FlaG ONCE SET DIRECTS RR03RA- FLOt. T"R?U3H I-CLO 

C ICFG1-FLA3 That SH9.S SuBPICl IS -ANIP'JLATED 

C ICFG2-FLA3 THAT SH"WS SUPPIC2 IS -ANIPJi. ATED 

I ICF33-FLA3 THAT Sm?»S Su9P!C3 IS -ANIPULATED 

t SU9P1»2»3" HEAOS 0=" SuPPIC DIRECTORIES 

t ROUTINE CA.JSES MANIPULATORS TO ? D E'ATE 3« ENTIRE SJ3PIC NOT UUST ONE 1-A3E 

C I-CLO PORTION HANDLES NECESSARY ACTION On SU9PICS FOR NAHE, DASH, ZOO- AND T'AN 

i-cl?: 



uu»-p 


. 


UPSR 


«BLOP 


"OAR 


ICF3 


UPLS 


I-CLO 


HDAR 


4BADR 


HDAE 


FOUR 


AR-D 


TE- P 1 


HOAR 


DASHH»s< 


ARHDM 


TE-P1 


AR*0'F 




AR-D 


DASHFR 


MDIR 


DA3H1 



I-l: 



1-2: 



1-10: 



!-n: 



1-12: 



1-13: 



I-l»: 



-DAR 


ONE 


ARHD 


JMCFG 


HDAR 


TBC^T 


MDAE'N 


SEVEN 


UPAN 


..» 


HDAR 


T3CNT 


1DX0 


TEN 


UPLS 


1-1 


-DAR 


ONE 


AR-D 


ICF31 


-DAR'F 


SU3°1 


AR-D 


I-C 


uu-p 


IH1C 


-OAR 


TBCNT 


-DAE'N 


SEVTEFN 


U°AN 


.♦# 


-DAR 


TBCNT 


-DXO 


T„£N 


UPLS 


1-2 


-DAR 


ONE 


AR-D 


ICF32 


-DAR'F 


Su3°2 


D ROUTINE C"NT, 




»?-: 


i-c 


Ju-R 


1-10 


-DaR'F 


SU3P3 


AR-D 


i-c 


HDAq 


ONE 


AR-C 


ICF33 


«DAR 


IMC 


AR-D 


• BACR 


HDAR 


NA-EF3 


UPLS 


• ♦2 


uj-p 


1-11 


Jv"P 


N6 


-D*R 


DAS-F3 


U°LS 


• ♦2 


jj-o 


1-12 


UU-R 


Dl 


"OAR 


200-F3 


UPLS 


• ♦2 


UU-P 


1-13 


UU-P 


22 


HDAR 


TRAVF3 


UPLS 


.♦2 


uu-p 


I-l* 


UU-P 


TRAN3 


-DAR'I 


i-c 


AR-D 


NUH31 


U°SR 


SL9? 


-DAR 


NUH91 


ARfD' I 


IHC 


uu-p 


R3 



C IHCL1 PORTION HANDLES T^E ACTIONS 'E3UIRED FOR OPERATING 
t On The *HOLE SuB°IC FOR CRVEC 

Ihcli: 



I-Ci: 



"DAR 


ICFG1 


U»LS 


• ♦2 


UU-R 


I -CI 


-DAR 


3CnT 


-DAE'N 


SEVEN 


UPAN 


.♦2 


uj-p 


I-Cl 


-DAR'F 


SU3 p l 


AR-D 


IHC 


uu-p 


I-CIC 


HDAR 


ICF32 


U°LS 


• ♦2 


uu-p 


I-C2 


HDAR 


3CNT 


-DAE'N 


SEVEN 


UPAN 


V2 



99 



31,1 t IMAGE CL9SE0 R9UTINE C9NT. 
31«2 

l\'l M 0*« SCNT 

irl «0*E'N SEVTEEN 

III j»*v .♦a 

iilfo M °* R,F su s p? 

31.M AR "° '" C 

It .1 M " p I^CIO 

3 1.12 I«C8: m 0a r ICFG3 

ii!i2 JPLS '** 

3l»l* jump v2 

31-15 m. 3a r BC ^ T 

31-16 MOAE'N SFVTEEN 

J1 * » ' JPA\ v? 

3l.|0 mdak-F SU3 = 3 

31.21 AR-D | M r 

31.22 If-ClO: WI'X TFMP4 
31*23 A RRS 17 
31*2* N98P 

^*f; *" M D TEMP6 

31*27 ARRS 17 

31*30 N99P 

31*31 A9"0 TE^Pl 

31*32 "OAR TEM«>6 

31 *33 13AE TEMPI 

31*34 AR-D TE"i l 

31*35 JPAN , +1C 

31.36 MDAE'N MXSCL 

31-37 JPAN , > + 6 

31. *0 « 0AR MXSC1 

31*»1 AR-D TEMPI 

31.42 jj-P .. 3 

31**3 ARXB'F 

31«»* AR-0 TEMPI 

*1.«5 "OAR TEMPI 

31«*>6 AR L S 17 

31.47 N 9»p 

31*50 ar^o Tempi 

31.51 - D11 TEMP1 

31-52 "D06M , x TE«"4 

31*53 -3ARix jhc 

31*5» -OAR'I'X Jm C 

31*55 ARAR>»J 

31.56 AR-D m u ^c 1 

31«57 M^A^l J i x TE" '' 

31*60 AR-D VU M =2 

31*61 JPSW SU52 

31*62 -DC7 NU «,ai 

31«63 -DAR'l'x I"C 

31*6*» AR-D TF^Pl 

31*65 M3ic«B Tempi 

32*1 C I-AGE CLSSED RSUTI'E C9nt. 

32. 2 

32.3 

32.* 



JJ^P V3 



3 ? *5 C LIGHT PEN ha\0|_ER p 8R TEXT 
32.6 

38. 1C C C9UNT 3EIN-. DRA«\i ,wen LIGHT PEN hit 

32.11 t C9JNT- COUNTER r B R NU-3ER 9P P9IMS IN D£SPT 

32*12 t TRCR0.TRA C < C99R0IVATES 9F CURSOR 

3£«13 [ CjRFG-FLAG SET T9 DRAW CJRS9P 

3|»1* C DATAl. HEADER F9R DISPLAY LIST 

32.20 C PICKED and THEN APPROPRIATE "lSJ SET I "ETER-'NES vhich pjnctisn . 

32.22 LPLER: 

32.23 

32. 24 

32.25 

32.26 

32-27 

32.30 

32.31 

32.32 

32.33 

32.3* 

32.35 

32.36 

32.37 

32. »C 

32. 41 

32.»2 








AR-D 


LPSAV 


MDIO'A 


MA3K2 


MDAR 


TXC'-'TI 


ARMD 


TXCNT 


ARX9'F 




AR"D 


LPFLG 


MDAR 


TXC'.T 


-DX9 


9NE 


JPLS 


Jl 


-DAR 


9NE 


AR-D 


LlNEFG 


AR^D 


CURF3 


ARX8'F 




ARKQ 


C9JNT 


JJ"P 


JP 



100 



33. 


1 


33. 


2 


33. 


3 


33. 


* 


33. 


5 


33. 


6 


33. 


7 


33. 


1C 


33. 


11 


33. 


12 


33. 


13 


33. 


1* 


33. 


15 


33. 


16 


33. 


17 


33. 


20 


33 


21 


33. 


22 


33 


23 


33 


24 


33 


25 


33 


26 


33 


27 


33 


30 


33 


31 


33 


32 


33 


33 


33 


3" 


33 


35 


33 


36 


33 


37 


33 


>*0 


33 


• 01 


33 


.»2 


33 


.3 


33 


>*4 


33 


.45 


33 


.46 


33 


i*7 


33 


.50 


33 


.51 


33 


.52 


33 


.53 


33 


.5* 


33 


.55 


33 


• 56 


33 


.57 


33 


.60 


3* 


1 


3* 


-2 


3* 


3 


3» 


* 


34 


5 


3» 


6 


3* 


.7 


3* 


>1C 


3* 


>11 


3" 


-12 


3* 


13 


3* 


"1* 


3* 


'15 


3* 


• 16 


3* 


"17 


3* 


>2C 


3* 


.21 


3* 


.22 


3* 


.23 


3* 


>2» 


3* 


.25 


3* 


• 26 


3* 


-27 


3* 


.30 


3* 


.31 


3* 


■ 32 


3* 


.33 


34 


>3* 


3* 


.35 


3* 


.36 


3* 


-37 


34 


.40 


3* 


.41 


3* 


• «2 


3* 


.43 


3% 


.44 


3* 


.»5 


34 


.46 


3* 


.»7 


3* 


.50 


3* 


.51 


3* 


.52 


3% 


• 53 


3* 


.54 



I TEXT LIGHT PEN HANDLER CBNT. 
Jit 



J2: 



J3! 



J4! 



J5! 



HOAR 


TXCNT 


MDX8 


TWB 


JPLS 


J2 


JPSR 


LINE1 


MOAR 


BNE 


ARMD 


ERASEPG 


JJHP 


JP 


MDAR 


TxCNT 


10X8 


TwrFE 


JPLS 


J3 


JPSR 


LINE1 


MDAR 


8N£ 


ARMD 


CURFG 


ARMD 


REFG 


MDAR 


REFPT 


ARK) 


TRCRD 


JUMP 


JP 


MDAR 


TXCNT 


MDXB 


F9jR 


JPLS 


J4 


JPSR 


LINE1 


MDAR 


BNE 


ARMD 


TRANFG 


ARMD 


CURPG 


«OAR 


REF D T 


AR"D 


TRCRD 


JUMP 


JP 


*DAR 


TXCNT 


M5X8 


FIVE 


JPLS 


J5 


JPSR 


L1NE1 


"OAR 


BNE 


ARMD 


3ASHFG 


JUMP 


JP 


MDAR 


TXCNT 


10X8 


SIX 


JPLS 


J6 


JPSR 


LINE1 


MDAR 


BNE 


AR^D 


zes-FG 


JUMP 


jp 



CTEXT LIGHT °£N HANDLER C8NT. 

J6: 



J7: 



HOAR 


TXCNT 


hdxb 


SEVFN 


JPLS 


J7 


JPSR 


LINE1 


MDAR'X 


FRA M £F3 


ARXB'F 




AR^D 


C9JNT 


JUMP 


JP 


MDAR 


TXCNT 


M0X9 


TEN 


JPLS 


J10 


JPSR 


LINE1 


MDAR 


BNE 


AR"D 


NAMEFG 


ARXS'F 




ARmD 


C9JNT 


JJMP 


JP 


MDAR 


TXCNT 


13X8 


ELEVEN 


JPLS 


JP 


MDAR 


8NE 


ARMD 


TTYFG 


ARXB'F 




ARMQ 


CURFG 


MDAR 


LPS*V 


JUMP' I 


lpler 



JlOi 



jp: 



C END 8F LIST HANDLER 

C RBUTINE SETS End 8F l I ST FLAG T9 A -0 S8 THAT DRVEC *ILL ST9P 
C L69PING AND DRa»i The NEXT IMAGE 

EBLER! 








ARhD 


SARI 


ARMD'8 


EBlFG 


-DAR 


SARI 


JUMP' I 


E9LER 



35. 


1 


35. 


2 


35. 


3 


35. 


4 


35. 


5 


35. 


6 


35. 


7 


35. 


10 


35. 


11 


35. 


12 


35. 


13 


35. 


1* 


35. 


15 


35. 


16 


35. 


17 


35. 


20 


35. 


21 


35. 


22 


35. 


23 


35. 


2* 


35. 


25 


35. 


26 


35. 


27 


35. 


30 


35. 


31 


35. 


32 


35. 


33 


35. 


3* 


35. 


35 


35, 


36 


35, 


37 


35, 


40 


35- 


♦ 1 


35, 


42 


35, 


43 


35, 


44 


35, 


45 


35, 


46 


35, 


47 


35, 


50 


35, 


51 


35, 


52 


35 


.53 


35 


5* 


35 


,55 


35 


,56 


35 


,57 


35 


,60 


35 


-61 


35 


,62 


35 


,63 


35 


.64 


36. 


1 


36, 


2 


36, 


3 


36, 


,4 


36, 


5 


36 


6 


36 


,7 


36 


• 10 


36 


• 11 


36 


•12 


36 


• 13 


36 


.14 


36 


•15 


36 


"16 


36 


•17 


36 


-20 


36 


• 21 


36 


• 22 


36 


• 23 


36 


■ 2* 


36 


.25 



£ FRAME CLOCK HANDLE 1 ? 

t ROUTINE HANDLES FRAME CLOCK INTERRUPTS* IF IMAGE DONE FLAG (IDFLG) 
t IS SET JUMP TO DTEXT AND REFRESH, IF NOT JUMP RIGHT BACK TO THE • 
[ FRAMECLOCK occurred 

fcler: 








ARMD 


SAR3 


MDAR 


IDFLG 


JPLS 


• ♦3 


MDAR 


SAR3 


JUMP 'I 


FCLER 


MDAR 


LPFLG 


JPLS 


• ♦2 


MDAR'X 


LPCNT 


MDAR 


FCLER 


MDAR'A 


MASK5 


MDAR'8 


MASK8 


ARMD 


DTEXT 


MDARIF 


DTEXT*1 


ARMD 


FCLER 


MDAR 


SAR3 


ARMD 


SAVEAR 


JUMP II 


FCLER 



c end of text string handler 

c txcnt-counter which is incremented after every string 

crq'jtine justs increments a text handler s8 when a light pen pick - 
[ occurs lpler can determine which function was selected. sends lcg - 
i t8 next string unless finished which in that case sends control to 
[ drvec to draw vectors. 

txler: 



JMP6! 








ARMD 


SAR2 


MDARiX 


TXCNT1 


MDXO 


TWELVE 


JPLS 


JMP6 


MDIO'A 


MASK2 


MDAR 


ONE 


ARMD 


TXCNT1 


MDAR 


TXLER 


MDAR'A 


MASK5 


MDAR'O 


MASK8 


ARMD 


DRVEC 


MDAR'F 


DRVEC*1 


AR U D 


txler 


MDAR 


SAR2 


ARMD 


SAVAR 


JUMP" I 


TXLER 


CONT. 




MDAR 


INCTXT 


MDAE 


FOUR 


ARMD 


INCTXT 


ARMD 


77735 


MDIC'A 


CM14 


MDIC'O 


TEN 


MDAR 


SAR2 


JUMP' I 


TXLER 



C RESET LINE FLAGS ROUTINE 

[ ROUTINE TO TJRN BFF CURSOR AND LINE FUNCTION FLAGS 

LINED 



JUMP 


• 


ARXO'F 




ARMD 


LINEFG 


ARMD 


CURFG 


MDIR 


LINE1 



102 



I-". 


1 


??. 


3 


37. 


3 


37. 


* 


37. 


5 


37. 


6 


37. 


7 


37. 


10 


37. 


11 


37. 


12 


37. 


13 


17. 


1* 


I". 


15 


37. 


16 


37. 


17 


37. 


2C 


37. 


21 


37. 


2? 


?'• 


23 


37. 


2» 


37. 


B5 


37. 


it 


37. 


27 


37. 


3C 


37. 


3: 


37. 


32 


37. 


33 


37. 


3* 


3^. 


35 


37. 


36 


37. 


37 


37. 


tC 


37. 


»1 


37. 


*2 


37. 


t3 


37. 


tt 


37. 


»5 


37. 


tt 


37. 


t7 


J7 


53 


37 


51 


37. 


52 


37. 


53 


37. 


5» 


37, 


55 


■a? 


56 


37 


57 


37, 


6C 


37 


61 


37 


62 


37 


63 


■>-' 


6» 


37 


65 


-: 


1 


»: 


>2 


• 3 


3 


»c 


,» 


• 


.5 


»0 


.6 


*c 


>7 


»0 


-1C 


»0 


.11 


*0 


.12 


»0 


•13 


»0 


>1* 


»0 


.15 


»0 


.16 


*C 


•17 


»0 


.?: 


to 


.21 


»c 


■ 2? 


»c 


■ - : - : 


»0 


>2» 


»c 


■25 


»c 


.--. 


to 


■ 27 


»3 


.30 


*c 


.31 


»e 


3? 


to 


• 33 


tc 


«3» 


00 


.35 


»0 


.36 


tc 


.37 


»0 


• »0 


tc 


• t] 


*c 


• *2 


*C 


.03 


tc 


.»t 


»0 


..5 


to 


.06 


»: 


.17 


to 


• 50 


tC 


• 51 


»c 


.53 


to 


■ S3 


tO 


• 5* 


»0 


.55 


•c 


.56 


t3 


• 57 


»0 


• 60 


to 


.61 


»c 


• t? 



CPEn TRACKING SJBR9UTINE 

t PTRCP-9FFSET TABLE P9INTR 

C THCBC-CEUL <<HtCH H9LDS CURRENT C99RDS. 9F CENTER 9f CURS3R (TRACK C99RD.) 

t TRCRP-CELL .MICH SAVES INITIAL TRCRC T9 UP DATE 

C R9UTJNE DRAwS a CURS5R WHICH MAS A P9INT Is CENTER ENCL9SED ST A RECTANGLE 

f WHICH IS E , -Ct9SE3 BY a DECAGON. when USER HITS A SI^E 9? The RECTANGLE 3R - 

I CECAGf^.THE CENTER 9F The BJR35R IS M9VED ThF DISTANCE AND DIRECTI9N 9F Th; 

C 9FCSET. 

PTRAC! 



JJ-P 


. 


HDAR'F 


nulZ 


AR"D 


E9LPV 


HDAR'L 




ARXP'F 




AR-D 


LP^2 


ARX9T 




AR-D 


ARJ°V 


-DART 


LPN? 


ARrC 


LPNPV 


"Oll'L 




37777JH 




"D10'9*L 




61»20VH 




-D06'F 


3 


HDAR'F 


PTPT.l 


ARHD 


PTRCP 


-DAR 


TRCRD 


AR-Q 


TRC'P 


MDAR'A 


CI 


HDAR'e'H 


9NE 


J°SR 


L835 


3iC;3jC;3; 




„PSR 


L9D5 


HDAR 


TRCRD 


-DAR'9 


C1M1 


N99P 




N9BP 




JPSR 


L9D? 


HDAR 


T»C p D 


-DAE'L 




»D0VH 


»00 


-DAR' A 


CI 


-DAR "5 'H 


9NE 


NO ? p 




N19P 




JPSR 


LODE 



[SET SCALE T9 1AXp 
CTURN 9N 



C SAVE F9R UP DATE 



ESDI 



! REPEAT ;.<77»C3 30»Cl<7 7»3C77»Cl»»3C77*01*'O30S»ri> 

"DAR TRC'D 

••DAE'L 



-DAR'9 ClMl 
t PE«J TRACK. C9NT. 

N98P 

N99P 

N9SP 

ARAR'X PTRCP 

UPSR L9D5 

N99P 

N99P 

«499P 

N9"P 

-DAR LPN2 

j?LS PTCK9 

-D*R'F LPN22 

AR-C LPn°V 

-DAR TRCD 

"DAE'L 

1750JH 503 

"DAR'A CHI 

HDAR'9'h 9NE 

JPSR L A D5 

NBCARRET 

I REPEAT 3, (115201 523/ 23 33. 7662*31 5' 3, 763 3300501. 
7603077301/ 7662*76 255/ 757*5,115276255, 
175077301/1750305011) 
CARRET 



END! 



N9SP 




N99P 




N9BP 




-DAR 


TRCRD 


-DAE'L 




Q 




HOAR'B 


ClMl 


ARAR'X 


PTRCP 


JPSR 


L9D5 


N99P 




NS9P 




N99P 




N99P 




iDAR 


TRC"P 


AR^D 


TRC^D 


HDAR'F 


NUL" 


AR-D 


LPN°V 


IDIO'A'L 




13B0JH 




-DIR 


PTRAC 




3 



103 



*};* C P EV TRACK C8NT. 

ll'.l PTPT! SIIMSIVHIHSUSIVH 

♦ l.*6 1*5101010; 57601777) 7671201777, 76327 1012 

JJ.JJ N98P;N98P; 

*};12 C LIGHT PEN HANDLERS In P E n TRA C < 

Jj.lJ [ LIGHT PEN HANDLER T8R HIT 8N T H E RECTANGLE 

M.16 LPN2: o 

* l, i 7 L„ 

41.20 "^ LPN2A 

♦1.21 „ TRCRP 

♦ 1.22 l** 1 ! TRCP 

♦ 1.23 ***° T " C,,P 
41. 24 M3AR LPN2A 
*l,|c JUMP-1 LPN2 

♦ 1.26 

♦1-27 t LIGHT PEN HANDLER F9R A H , T 9S THE DecagSn 

*1'31 LPN22: o 

41. 33 ***£ LPN2A 

41. -J4 MDAR TRCRP 

•1.35 Htl' 1 PTRCP 

»,. 37 WARiF NULX 

M.40 **^ LF>NPV 

41.41 Y0AR LPN2A 

41.42 JU " P ' 1 LPSH 
»1.43 
41.44 
41.45 
*l«*6 L8D5! jump 



t ROUTINE T6 DRAW THE LINES IN the CURS8R 







••1 

LeD5 




41. 5C 

*1»51 wioro 

-1.52 M0IR 

♦1.53 kuiz: JUMP 

•1-M nllx: j^' 1 

*L56 , U „p, t 

... Jo- P' I NULX 

•|.| t DESIGNATE P9INT R6JTJNE 

42.3 
42.4 
42.5 
42.6 
42.7 

JI.'IS 

42.12 

*2«13 DESPT: 

42.14 

42.15 
42.16 
42.17 
42.20 
42.21 
42.22 
42.23 
42.24 
42.25 
42.26 

42*27 jy. 

J|.3J THIS =8RTI9N F9R LINE 

42.32 
42.33 
42.34 
42.35 
42.36 
42.37 

42.40 

42.41 pj 
42.42 

42.43 
42.44 
42.45 
42.46 

42.47 
42. 5C 
42.51 
42.52 
42.53 








1DAR 


fLGl 


J D LS 


3TEXT1 


-3A9 


9NE 


AR*D 


PLG1 


"DAR 


LINEFG 


U°LS 


UU 


*CAR 


TRANFG 


UPLS 


UPTR 


"DAR 


REFG 


upls 


JPREF 


JUMP 


DTEXTl 


m Dar 


CSU^T 


AR"C 


TEMPI 


MDAR 


0ATA1 


mdxs 


M2ER9 


UPLS 


PI 


MDAR'F 


DATAl.l 


ARKD 


TEMP2 


^DAR 


DBL< 


ARMD 


TEMP3 


UU"P 


P2 


ARXB'F 




AR^D 


ICFG 


UPSR 


WBL8P 


"DAR 


WBADR 


AR-D 


TEHP3 


MDARt J 


TEMP3 


"OX8 


8NE 


JPLS 


• *2 


ju^-p 


«*3 


MDAR 


8NE 


ARID 


JMPFG 



04 



»3. 


1 


C DESIGNATE 


P6INT C8NT. 




*3 


2 








• 3 


3 




MDAR'F 


DATAl 


»3 


4 




MDAE 


TWCNT 


»3. 


5 




MDAE 


WC9NT 


»3. 


6 




MDAE'N 


9NE 


»3. 


7 




ARMD 


TEMP2 


43. 


10 




1D*». 


JfPPG 


4?. 


11 




JPIS 


P2 


»3. 


12 




MDAR'I 


TEMP2 


.3. 


13 




MDAR'A 


MASK7 


»3. 


1* 




ARmD'I 


TEMP2 


43. 


15 








»3. 


16 


P2: 


MOAR'X 


TEMPS 


.3. 


17 




MDAR 


SCAL 


.3. 


20 




ARMDt J 


TEMP3 


»3. 


21 




MDAR'X 


TEMP3 


*3. 


22 




MOAR 


INTENS 


.3. 


23 




ARMS' I 


TE*P3 


-3. 


8* 




MOAR'X 


TEMP3 


.3. 


25 




MDAR 


RETPT 


.3. 


26 




ARrD'I 


TEMPS 


.3. 


27 




ARX9'F 




43. 


30 




armD 


JMPFG 


.3. 


31 




MOAR 


TEMPI 


.3. 


32 




JPIS 


JU1 


»3. 


33 




MDAR 


TEMP2 


»3. 


3* 




MDAE 


9NE 


^3. 


35 




ARMD 


TEMP2 


.3. 


36 




MDAR 


TEMP3 


• 3. 


37 




AR"D 


TFMP6 


»3. 


40 




MDAR 


LF31 


43. 


41 




JPLS 


• *3 


»3. 


42 




MDAR 


TRCPD 


43. 


43 




JUMP 


P3 


*3. 


44 




MDAR 


PTCPPD1 


43- 


45 


"3: 


MDAR'A 


MAS<6 


.3. 


46 




ARMD 


NUMB2 


43. 


47 




MDAR 


REFPT 


.3. 


50 




ARMD 


NUM31 


.3. 


51 




JPSR 


SU32 


43. 


52 




MDAR 


NU"51 


.3. 


53 




MDAR'8 


MA5<9 


.3. 


5* 




ARMD' I 


TEMP2 


-3- 


55 




MDAR 


TEMP6 


.3. 


56 




MQAE'N 


THREE 


.3. 


57 




AR-D 


TE* = 6 


.3. 


60 




-DAR' I 


TE-°6 


»3. 


61 




MD"? 


MZER? 


43. 


62 




J p LS 


• ♦3 


43. 


63 




-DAS 


5s£ 


43. 


6* 




AR-D' I 


TFMP6 


44 


• 1 


C DESIGNATE 


POINT CBNT. 




44 


>2 








44 


.3 




-DAR'X 


CPJNT 


44 


>4 




MDAR'X 


WCS^T 


44 


.5 




MDAR 


LFG1 


44 


• 6 




JPIS 


JU 


44 


■ 7 




JUMP 


DTEXT1 


44 


>1C 








44 


• 11 


JUll 


MDAR 


TEMP2 


44 


•12 




MDAE 


9NE 


44 


'13 




ARMD 


TEMP2 


44 


>1» 




MDAR 


LFGl 


44 


-15 




JPUS 


• *3 


44 


•16 




MDAR 


TRCRD 


44 


•17 




JJMP 


P4 


44 


.20 




MDAR 


PTCPRD2 


44 


• 21 


P4: 


MDAR'A 


M AS<fc 


44 


>22 




ARMD 


NJMB2 


44 


.23 




MDAR 


REF p T 


44 


• 2* 




ARMD 


NU-Sl 


44 


• 25 




JPSR 


SUB2 


44 


• 26 




MDAR 


NUMB1 


44 


>27 




MDAR'8 


CHI 


44 


.30 




ARMD' 1 


TEMP2 


44 


• 31 




MDAR'X 


WC8NT 


44 


• 32 




MDAR 


LFGl 


44 


• 33 




JPLS 


T3 


44 


• 3* 




JJMP 


DTEXT1 


44 


• 35 


jptr; 


MDAR 


TRCPD 


44 


• 36 




MDAR'A 


MAS<6 


4* 


• 37 




ARMQ 


NUMB2 


44 


• 4C 




ARXS'F 




44 


.41 




AR-D 


TRANF61 


44 


• 42 




AR"D 


CURP3 


44 


• 43 




ARMD 


TRCPD 


44 


■ 44 




JJMP 


DTEXT1 


44 


• 45 


jpref: 


MOAR 


TRQRD 


44 


• 46 




MDAR'A 


MAS<6 


44 


.47 




ARMD 


NUM32 


44 


• 50 




ARX8T 




44 


• 51 




ARMD 


REFG1 


44 


• 52 




ARMD 


CURPG 


44 


• 53 




ARMD 


TRCRD 


44 


• 5* 




JUMP 


DTEXT1 



CTHIS P9RTIBN F9H SUCCEEDING END P9INTS 



t THIS P9RTI9N F9<? TRAN 



C THIS PBRTI8N F8R REF 






05 



45. 


1 


45. 


2 


♦ 5. 


3 


45. 


4 


• 5. 


5 


45. 


6 


45 . 


7 


45. 


10 


»5. 


11 


• 5. 


12 


45. 


13 


45. 


1* 


»?. 


15 


-=• 


16 


♦ 5. 


17 


• 5. 


20 


45. 


21 


-=• 


22 


45. 


23 


45. 


24 


45. 


25 


45. 


26 


45. 


27 


45. 


30 


45. 


31 


45. 


32 


45. 


33 


45. 


34 


45. 


35 


45. 


36 


45. 


37 


45. 


40 


45. 


41 


45 . 


42 


AS. 


43 


45. 


44 


45. 


45 


45. 


46 


45< 


47 


45. 


50 




51 


45. 


52 


45. 


53 


46. 


>l 


46' 


>2 


46' 


• 3 


46' 


i4 


46' 


.5 


46' 


>6 


46' 


.7 


46' 


.10 


46 


>U 


46 


■ 12 


46 


•13 


46 


•14 


46 


•15 


46 


•16 


46 


•17 


46 


.20 


46 


.21 


46 


.22 


46 


.23 


46 


• 24 


46 


.25 


46 


.26 


46 


.27 


46 


.30 


46 


• 31 


46 


.32 


46 


.33 


46 


• 34 


46 


.35 


46 


• 36 


46 


.37 


46 


.40 


46 


.41 


46 


.42 


46 


.43 


46 


.44 


46 


.45 


46 


.46 


46 


.47 


46 


.50 


46 


• 51 


46 


• 52 


46 


.53 


46 


• 54 


46 


.55 


46 


• 56 


46 


• 57 


46 


.60 



t WHAT BLOCK OPEN ROUTINE 

I W8ADR-A0DRESS OF MEADE" OF THE OPEN IMAGE 

CTBCNT. COUNT OF IMAGES IN CURRENT SUSP I C PLUS C,10«0R 20 DEPENDING IF SjDoiCl 

C 8R SUBPIC2 OR SUBPIC3 OPEN 

C DBL.K-ADDRESS 9F HEAD OF DIRECTORY 

C ROUTINE DETERMINES WHAT IMAGE (BLOCK) IS OPEN BY COMPUTING AN OFFSET FRO" 
C THE HEAD OF THE DIRECTORY. 

wBLBP! JUMP . 

Wl: MOAR TBCNT 

ARLS 2 

N80P 

MDAE TBCNT 

MDAE T8CNT 

MDAE'N SIX 

ARMD TEMP3 

MDAR DBLK 

MDAE TF»iP3 

AR«D WBADR 

MDAR' I ^BADR 

MDX8 9NE 

JPLS »*2 

MDIR WBL9P 

MDAR 8NE 

ARMD ICFG 

MDAR wBADR 

MDAE SIX 

ARMD WBADR 

MDIR WBLOP 

[CONSTANTS AND VARIABLES 

TI ■ 300 

MTI « -TI 77777 

SI ■ 40 

M SI • -SI 77777 

sari:o 

SAR2:0 
SAR3:0 

savar:o 
savearjo 

c constants etc. cont. 

"ZEROt-O 

ZERSIO 

9\E:i 

'.»:? 

ThREE:3 

F8UR:4 

FIVEI5 

Six;6 

seven:7 

TEN: 10 

ELEvENIll 

T*ELVEI12 

fift:i5 

SEVTEENI17 

t«en:20 

thir:3C 
te u pi:o 
te"P2:o 

TEmo3:o 

te m p4:o 

TEMP5S0 

temp6:o 

cihi: ooooiooooi 

C"l:«l 

C14!.14 

inctxt:o 

TXCNT10 

txcnTi:i 

TkCNTiO 

«c9nt:o 
bcnt:o 

CNTERiO 

cont:io 

CONTliO 

count :o 
ptcnt:o 

TBCNTiO 
TTYCNTtO 
WBADR SO 

ZCNTERiO 
CURFGiO 

dashfgio 
dblk:o 

E0LF3I0 

ERASFFGJO 

ERRFSiO 



'06 



47.1 
47.2 
47. 3 
47*4 

47. c 

47.6 



47. 

>7, 

47, 

47, 

4', 
47, 

47, 
47, 
47. 



5C 

c '■ 



t.r 



7 
IC 

11 

17 
1* 

l c 
16 
P 



7-21 

7.?r 

7.23 
7«?4 

7 

7.?' 
7.?7 
3 A 
31 
32 
3^ 
3* 
3v 

-»6 
37 
4 2 
41 

4 C 
^ 
*4 
4 C 
46 
47 

br 

i> 1 



47 
47 
47 

-7 

w 

47 

-.7 

4 7 

4 7 
47 
47 

»7 

»7 

47 

47 
47 

4 ; 

47 

4/ 

4 7 

4 7.5 
4 7 • 6 C 
4 7 • ft 1 

2 

4 

K 

7 
IC 

11 
1? 

13 

I* 

1- 
1 t. 

17 
?C 

21 

■ 23 



r cs'.'stants ftc. c^nt. 



c l.gi:t 
ffri:c 
ffTj2: : 
fflai:c 
f»fsi:c 
Ff?Fn ? :c 
ICFr.rc 
ICF31 :c 

rc r 32:c 
!CF33:c 
I?FlG:C 

VC:r, 
[rCFGie 
J 'PFG:C 

lfgi:c 
LP efg:o 

Mo V pr j:C 

saneft:o 

i_pc\t:c 
LP r L.:i:i 
lpsav:c 

l p '?a:c 

d f p r o . r 

\fgfg:o 
^ffg:c 

REF3t!l 

Tr?A\cri:o 

T KA\r;.i : : 
ttvfg:- 

79flyF3:0 

SCAL! 
" < P C 1 • 

r tf ; .g: 

" x r Y : : 

FAfi :r 

"E.FPT! 2 



37777V- 
377 77V • 

'3777/ 



' M »l :c 

LP2:~ 

c T C ° K' D 1 '• ~ 

*AS<ll 

"A;K? 
"AG<3: 

''ASk'4 

U A5<5 

"ASK* 
" A SK 7 ! 

"AS*' 

"ask?: 

» a 'j < 1 : : 

"as<11 : 

"as<12: 

"•as<13: 

"A5<l4: 

^asvj m a3< : :?' , ~: 

LP^AS*: 20"! 
fLXPV = 7775 r -, 
F9VPV = 7775f 
AK?PV * 77771 



777777 
777b77 

:c:cc7 

777770 

W V v '-> V.' ' 



7 776 

7777 
7776 

7777 
7776 
7777 
">CC0 



7777^7 

777767 
DC4 3C 
J w c 1 

777777 

" 'i ; r 3 7 

C37777 
7?77777777 



'7776 
'77^7 
'7777 



L-\rv 
E^LPV 



*7776C 

= 7~'7 r 7 



07 



El. 


1 


El. 


2 


51. 


3 


51. 


♦ 


51. 


5 


51. 


6 


51< 


7 


51. 


i: 


51- 


11 


51. 


12 


51. 


13 


51. 


1* 


5t< 


15 


51. 


16 


51< 


1' 


51- 


20 


51. 


21 


51< 


22 


51. 


23 


51. 


2* 


51. 


25 


51- 


26 


51. 


27 


51. 


30 


51- 


31 


51 • 


32 


51< 


33 


51- 


3* 


51. 


35 


51. 


36 


5l« 


37 


51. 


*0 


51. 


»1 


51. 


*2 


51. 


*3 


51. 


** 


51. 


*5 


51. 


46 


51. 


*7 


51. 


50 


= 1. 


51 


51« 


52 


51. 


53 


51 


5* 


51. 


55 


5:. 


56 


52 


I 


c 2 


8- 


52 


3 


52 


» 


52 


5 


52 


6 


52 


7 


52 


10 


52 


11 


52 


12 


52 


13 


5? 


1* 


52 


15 


52 


16 


52 


17 


= 2 


2: 


52 


21 


r ^ 


22 


52 


23 


5 2 


2" 


52 


25 


52 


26 


52 


27 


52 


30 


52 


31 


52 


32 


52 


33 


52 


.3* 


52 


.35 


52 


36 


52 


.37 


52 


.00 


52 


>*1 


52 


.*2 


52 


.»3 


52 


.». 


52 


•»s 


52 


• *6 


52 


.»7 


5 2 


.5: 


52 


• 51 


52 


• 52 


52 


• 53 


52 


• 5* 


52 


.55 


5 2 


• 56 


52 


• 57 


52 


• 60 


52 


• 61 


52 


• 62 



t TEXT DISPLAY LIST 

drtext: 

0*70005*6* 
♦6222*7212 

0000100COO 



0002260C26 

1721251202 

5161300000 



0*7000550* 

51212*3000 

0OCO10O0OO 



0*7000551* 

522***363* 

00C0100000 



0*7000552* 

*220251620 

0OC01O0O00 



0*7000553* 

55236*7632 

2665152000 



0*700055** 

*32***0632 

*2»0100C00 



0*7000555* 

*7202*6612 

2665152000 



0*7000556* 

522505**00 

0000100000 

t INSTRUCTS DEFINITI9SJS 

M D05«25D0CJH 

-::6»26C0cvm 

-D07.27C0CJH 
^010"30C00s/H 
MDH'SIOOOVH 

t ci^cTe^ r?5 mages 

oblki: -0 






c 

03L<2i .0 










DBLK3: »0 










DBLK*: »0 










DBL<5: .0 










DBL<6! »0 










ZBL<T. -0 










DBLKlOi «0 













08 



5||1 t DIRECTORY F8R JiaOES IN SUBP[ C 2 



53.2 

S30 DBLK21: .0 

53.* 

53.5 g 



53.10 § 

53-11 09LK22: .0 



53.6 

53.7 



53.»3 
53.44 
53.45 

53. 46 



53.62 



54.4 
5*. 5 

5*.6 
54.7 



53.12 

53.13 J 

53.14 g 

53.15 J 

53.16 g 

53.17 CBLK23: .0 

53.20 U 

53.21 „ 

53.22 ° 

53.23 g 

53.24 ° 
■53.25 0BL<24: .n 

53.26 ° 

53.27 . „ 
53.30 







53.31 „ 

53.32 

53.33 CBLK25! . 

53.34 ff ° 
53.35 



53.36 J 



53.37 

53. 40 o 

53.41 DBLK26: .0 

53.42 U 






53.47 0BLK27: , 

53.50 

53.51 

53.52 






53.53 § 

53.54 

53.55 0BLK210: .0 

53.56 D 

53.57 Q 
53.60 
53.61 





5»«1 t DIRECT9RY F8R [-AGES IN SUBPIC3 

• 



54.2 

•3 D8LK31 



54.10 

5*« 11 09K32: .o 

54.12 

54.13 

1* 




54.go 1° 



54.15 
54. i6 
54.17 0BL<33: 



54.21 

5».22 

5».23 

54.24 

5».g6 DBL<34 

54.26 

54.27 

54.30 J 

54.31 

54.32 

54.33 0BLK35! 

54.34 g 

54.35 g 

54.36 o 
5*. 37 
54.40 

5*. 41 0BLK36 
54.42 
54.43 

5».44 - J 

54.45 
54.46 

54.47 DBLK37: 
54.50 
54.51 
54.52 
54.53 
54.54 

54.55 DBIK310. 

54.56 g 

54.57 

54.60 

54.61 

54.62 o 






•0 





• 3 









09 



55. 


1 






t DIRECT8RY 


F8R SU9PIC1 




55. 


2 










55. 


3 




suBPi: 







55. 


4 











55. 


5 











55. 


6 











55. 


7 











55. 


10 




MCNTU 







55. 


11 






c 




55. 


12 










55. 


13 




t DIRECT8RY 


fsr suBP!C2 




55. 


1* 










55. 


15 




Sj?P2: 







55 


16 






c 




= 5 


17 











55 


23 











55 


21 






c 




55 


2? 




aC».t2: 







55 


23 




T3CN2: 







55 


2* 










55 


25 




t CIRECT8RY 


F8R Sw.BPIC3 




55 


2« 










55 


?7 




SU5P3! 







55 


.3: 











55 


.3! 











55 


.32 











55 


• 33 











55 


• 3* 




kCNT3: 







55 


•3 = 




T3CV3: 







55 


• 36 










55 


.37 




DATA1I-0 






55 


.40 




TE Bm !naTE 






»3*IM 




25.21 




E3 


17.37 


»3»P2 




13 


3: 




E» 


17.53 


A3A Js3 




17 


»3 




FLEVEN 


*6.15 


ASM* 




10 


2 = 




el?le« 


16.40 


:-c\ T 




»6 


41 




end 


22. i: 


ClHJ 




•6 


31 




r, .:i 


23.43 


C"ECK 




22 


20 




r N32 


6.53 


CI 




46 


32 




ends 


17.57 


:m» 




46 


33 




E8LEH 


34.47 


cste* 




»6 


»2 




2?_f3 


-6.56 


C"P1 




1» 


56 




ER»SE1 


16.6 


C?"° 




1* 


.3 




l^»SEE3 


46.57 


cbntj 




M 


44 




ERR8" 


26.47 


C8NT 




»6 


-■> 




EK9J 


12.3 


C?U>.T 




»6 


.5 




e-»2 


15.40 


ru'FG 




46 


5-5 




-SS3 


15.53 


~i 




37 


13 




ERR4 


15.61 


OaSmI 




2 7 


7 




E^5T3 


46.63 


CASwFG 




46 


5* 




Fl 


5.35 


C»Sm-»S< 




50 


I 7 




ra 


6.16 


CATaI 




= 5 


37 




f*Cl 


47.53 


:slkio 




53 


55 




FC U ER 


35.7 


C5L<1 




52 


3 




'"31 


.7.5 


331K21C 




53 


55 




FF62 


47.6 


-)»L<?1 




53 


3 




FFI.A6 


47.7 


03L«22 




53 


11 




- ;--t 


46.17 


- = '_<? 3 




= 3 


17 




r ; . 1 1 


15.3 


"B.<2» 




53 


25 




FINI2 


16.23 


;3L«a5 




53 


33 




FI.NJ3 


27.22 


rBL<?6 




53 


»1 




"IMS 


12.7 


33L<27 




53 


47 




c !vE 


46.11 


3BL<2 




52 


11 




FL3I 


47,4 


33LK31C 




54 


55 




F8 W R 


46.10 


CeL*31 




5» 


3 




FRJ 


6.3 


33L02 




5* 


11 




FR2 


6.35 


;U<33 




54 


17 




F = 5 


7.24 


C3L<3» 




5. 


2 C 




FR6 


7.35 


CBLK35 




5» 


33 




FRAMl 


5.17 


331*36 




54 


M 




FRAM3 


7.7 


031*37 




5* 


."> 




FRAMEFQ 


47.3 


nSLO 




52 


17 




FRFG1 


47.1C 


03l<4 




52 


2 C 




FRFG2 


47.11 


C3LK5 




52 


33 




3P8SV 


1.17 


DBLK6 




52 


■ 41 




ICFG1 


47.13 


03L<7 




52 


»' 




ICFG2 


47.14 


09LK 




46 


.55 




ICFG3 


47.15 


f)ESPT 




*2 


.13 




!CF3 


47.12 


CO T Ex T 




51 


.3 




::r L 3 


47.16 


WEC 




3.23 




! - 1 


27.55 


DTEXT1 




?.13 




:-io 


3C.12 


CTEXT 




'..53 




I "11 


33.20 


3XDY 




»7.5l 




:-:2 


3:. 24 


n 




16 


ȣ 




1-13 


30.30 



1-2 


30 


5 


IMCLl 


30 


46 


!"CL9 


27 


40 


I-C 


47 


17 


I"C10 


31 


2 2 


IMCJ 


30 


6C 


I-C2 


31 


12 


:*cf3 


47 


2: 


INCTXT 


46 


34 


INTEN3 


47 


50 


J10 


34 


26 


Jl 


33 


3 


J2 


33 


13 


J3 


33 


26 


J4 


33 


41 


J5 


33 


51 


J6 


34 


3 


J7 


34 


1* 


JMP6 


36 


3 


J"PF3 


47 


21 


JPREF 


44 


45 


JP 


34 


35 


JPTR 


44 


35 


JUl 


44 


11 


JJ 


42 


27 


LFGi 


47 


22 


LINE1 


36 


21 


LINEEG 


47 


23 


L535 


41 


46 


LP2 


47 


57 


lpcnt 


47 


26 


ipflg 


47 


2? 


LPIER 


32 


22 


LPMASX 


50 


23 


LPN22 


41 


31 


LPS2* 


47 


31 


LPN2 


41 


16 


LPSAV 


47 


33 


"ASKlO 


50 


12 


"ASK11 


50 


13 


"ASK12 


50 


14 


"ASK13 


50 


15 


"ASK14 


50 


16 


1ASK1 


50 


1 


"AS<2 


50 


2 


"AS<3 


50 


• 3 


"AS<4 


50 


4 


-AS<5 


50 


5 


"AS<6 


50 


6 


"AS<7 


50 


7 


-AS<B 


50 


10 


"AS<9 


50 


• 11 


-8VFG 


47 


24 



"xscl 


47 


46 


"ZER8 


46 


3 


M 


10 


47 


N2 


11 


3 


S3 


11 


17 


V4 


11 


32 


\5 


11 


42 


\6 


11 


5; 


vAf-El 


10 


14 


sA-EFG 


47 


25 


SA-ER 


47 


52 


megfg 


47 


33 


SULX 


41 


55 


MULZ 


41 


53 


SUiBl 


47 


55 


SU"B2 


47 


56 


8NE 


46 


5 


SVFR1 


11 


46 


8VER 


5 .* 


il 


PI 


12 


41 


P2 


43 


16 


P3 


43 


45 


P4 


44 


21 


PTC<9 


40 


53 


PTCNT 


46 


4b 


°TC?RD1 


47 


6: 


PTC9R02 


47 


61 


PTPT 


41 


3 


PTRAC 


37 


14 


PTRCP 


47 


32 


R0 


21 


12 


Rl 


21 


15 


R2 


21 


53 


R3 


22 


3 


RC8"Pi 


20 


22 


rcs^p 


15 


16 


rcp* 


15 


13 


refpt 


47 


54 


REFl 


20 


17 


REFG1 


47 


33 


REFG 


47 


34 


SARI 


45 


4? 


SAR2 


45 


53 


SAR3 


45 


51 


SAVAR 


45 


52 


SAVEAR 


45 


.53 


SCAL 


47 


4 5 


SEVTEEM 


46 


2: 


SEVEM 


46 


• 13 


six 


46 


12 


SKIP1 


2. 


32 


S<IP22 


14 


.3 


S<IP23 


14 


27 



10 



SKIP 


2.30 


SUBP1 


55. 


3 


SUBP2 


55. 


15 


SU9P3 


55. 


27 


SU52 


24. 


11 


Tl 


14. 


25 


T? 


14. 


41 


T3 


14« 


46 


TBCNl 


55. 


11 


TBCN2 


55. 


23 


TBOS 


55 . 


35 


TBCNT 


46. 


47 


TC5MP 


15. 


31 


TE^Pl 


46. 


23 


TE^P2 


46. 


24 


TEMP3 


46. 


25 


TE*P4 


46. 


26 


TEMP5 


46. 


27 


TEMP6 


46. 


30 


TEN 


46. 


14 


THIR 


46. 


22 


THREE 


46. 


7 


TRANl 


23. 


14 


TRAN2 


23. 


17 


TRAN3 


23. 


27 


TRA\FG1 


47. 


37 


TRANF3 


47. 


• 36 


TRATY 


15. 


-25 


TRCRO 


47. 


.43 


TRCRP 


47, 


,44 


TT 


*• .: 




TTY1 


13 


.17 


TTYCNT 


46 


.50 


TTYFG 


47, 


.40 


TkCNT 


46 


• 37 


TWELVE 


46 


■16 


TWEN 


46 


,21 


Twe 


46 


.6 


TXCMl 


46 


■ 36 


TXC\ T 


^6 


35 


TXLER 


35 


,43 


TYPEFG 


4 7 




VI 


4.34 


V2 


4.36 


V3 


4.43 


1*1 


45.14 


*. A I T 1 


26.61 


'aiBADR 


46.51 


WBL0P 


45.13 


WCNT1 


55.10 


v4CNT2 


55.22 


WCNT3 


55.34 


*C8NT 


46 


.40 



Z2 


26.1? 


Z3 


26.31 


Z4 


26.37 


lb 


26.41 


ZCNTER 


46.5? 


ZERO 


46.4 


Z69M1 


25.14 


Z69M2 


26.3 


Z6SMFG 


47.42 



\\\ 



LIST OF REFERENCES 



1. Siders, R. A., and others, Computer Graphics, A 

Revolution in Design, American Management 
Association, 1966 . 

2. Brown, S. A., and others, "A Description of the APT 

Language," Communications of the ACM , v. 6, pp. 
649-658, November, 19 63. 

3. Hurwitz, A,, and others, "GRAF: Graphic Additions to 

FORTRAN," in AFIPS Conference Proceedings 1967 
Spring Joint Computer Conference, vT 30 . Thompson 
Book Company, 1967 . 

4. Thornhill, D. E., and others, An Integrated Hardware - 

Software System f or Computer Graphics in Time- 
sharing, Massachusetts Institute of Technology, 
November , 19 68. 

5. Anderson, R. H. , and Farber, D. J., Extensions to the 

PL/I Language for Interactive Computer Graphics , 
The Rand Corporation, RM-6028-ARPA, January, 1970. 

6. Rully, A. D., "A Subroutine Package for FORTRAN," 

Interactive Graphics in Data Processing, IBM 
Systems Journal , v. 7, pp. 248-256, 1968. 

7. Gagliano, F. W. , and others, "A Conversational Display 

Capability," Interactive Graphics in Data Processing , 
IBM Systems Journal , v. 7, pp. 281-291, 1968. 

8. Brown, G. D., and Bush, C. H. , The Integrated Graphics 

System for the IBM 2250 , The Rand Corporation, 1968. 

9. Streit, E., "VIP: A Conversational System for Computer- 

Aided Graphics," in Pertinent Concepts in Computer 
Graphics , Faiman, M., and Nievergelt, J., ed., 
University of Illinois Press, 1969. 

10. Sutherland, I. E., "Sketchpad A Man-Machine Graphical 

Communication System," AFIPS Conference proceedings 
1963 Spring Joint Computer Conference, v. 23, 
Spartan Books Incorporated, 1963. 

11. Electronic Systems Laboratory, Massachusetts Institute 

of Technology, ESL-TM-220, Some Experiments with an 
Algorithmic Graphical Language, by Lang, C. A., and 
others, August, 1965. 



112 



12. Yarbrough, L. D,, "CAFE; A nonprocedural Language for 

Computer Animation" in Pertinent Concents in 
Computer Graphics , Faiman, M., and Nievergelt, J., 
ed., University of Illinois Press, 1969. 

13. Ledley, R. S., and others, "BUGSYS: A Programming System 

for Picture Processing - Not for Debugging," 
Communications of the ACM , v. 9, pp. 79-84, February, 
1966. 

14. Miller, W. F., and Shaw, A. C, "A Picture Calculus," 

in Emerging Concepts in Computer Graphics , Secrest, 
D . , and Nievergelt, J., ed., W. A. Benjamin 
Incorporated, 1968. 

15. Kulsrud, H. E., "A General Purpose Graphic Language," 

Communications of the ACM , v. 11, pp. 247-254, 
April, 19 68. 

16. Morrison, R. A., "Graphic Language Translation with a 

Language Independent Processor," in AFIPS Conference 
( Proceedings 1967 Fall Joint Computer Conference , 
v. 31, Thompson Book Company, 1967. 

17. Roberts, L. G., "A Graphical Service System with Variable 

Syntax, Communications of the ACM , v. 9, pp. 173- 
175, March, 1966. 

18. Coons, S. A., "An Outline of the Requirements for a 

Computer-Aided Design System," in AFIPS Conference 
Proceedings 1963 Spring Joint Computer Conference , 
v. 23, Spartan Books Incorporated, 1963. 

19. Notely, M. G., "A Graphical Picture Drawing Language," 

The Computer Bulletin, v. 14, pp. 68-74, March, 1970. 

20. Chen, F. C, and Dougherty, R. L., "A System for 

Implementing Interactive Applications," Interactive 
Graphics in Data Processing, IBM Systems~Journal , 
v. 7, pp. 257-270, 1968. 

21. Herzog, B., "Computer Graphics for Designers," in 

Emerging Concepts in Computer Graphics , Secrest, 
D., and Nievergelt, J., ed., W. A. Benjamin 
Incorporated, 1968. 

22. Johnson, T. E., "Sketchpad III A Computer Program for 

Drawing in Three Dimensions," in AFIPS Conference 
Proceedings 1963 Spring Joint Computer Conference , 
v. 23, Spartan Books Incorporated, 1963. 



113 



£3. Lincoln Laboratory, Massachusetts Institute of Tech- 
nology, Technical Report Number 315, Machine Per - 
ception of Three-Dimensional Solids , by L. G. 
Roberts, 22 May 19 63. 

24. International Business Machines Corporation, IBM SYSTEM/ 

3 60 Operating System Graphic Subroutine Package 
(GSP) for FORTRAN IV, COBOL, and PL/ I , 1969. 

25. Sutherland, I. E., "Computer Displays," Scientific 

American , v. 222, pp. 57-81, June, 1970. 

26. Spiegel, M. R. , Theory and Problems of Vector Analysis 

and an Introduction to Tensor Analysis , Schaum 
Publishing Company, 1959 . 



114 



INITIAL DISTRIBUTION LIST 



No. Copies 



1. Defense Documentation Center 
Cameron Station 
Alexandria, Virginia 22314 

2. Library, Code 0212 
Naval Postgraduate School 
Monterey, California 93940 

3. LT Ronald D. DeLaura, USNR ("Code 52D1) 
Department of Electrical Engineering 
Naval Postgraduate School 
Monterey, California 93940 

4. Dr. George Rahe (Code 52 Ra) 
Department of Electrical Engineering 
Naval Postgraduate School 
Monterey, California 93940 

5. MAJOR James Dale Beans, USMC 
117 Spa View Avenue 
Annapolis, Maryland 21401 



115 



UNCLASSIFIED 



Security Classifiration 



DOCUMENT CONTROL DATA -R&D 

Security classification of title, body of abstract and indexing annotation must be entered when the overall report is classified) 



I originating activity (Corporate author) 

Naval Postgraduate School 
Monterey, California 93940 



2*. REPORT SECURITY CLASSIFICATION 



Unclassified 



2b. GROUP 



3 REPORT TITLE 



GPGL: A Model Interactive, General Purpose Graphic Language 



4 DESCRIPTIVE NOTES (Type of report and.inclusive dates) 

Master 's Thpsis: Dprpmbpr 1971 



S au T mo RiS < i Firs I name, middle initial, last name) 



James Dale Beans 



6 REPOR T D A TE 



December 1971 



7a. TOTAL NO. OF PAGES 



117 



7b. NO. OF REFS 



26 



»a CONTRACT OR GRANT NO. 



b. PROJEC T NO 



9a. ORIGINATOR'S REPORT NUMBER(S) 



96. OTHER REPORT NOISI (Any other numbers that may be assigned 
this report) 



10 DISTRIBUTION STATEMENT 



This document has been approved for public release;di stribution 
unlimited. 



II SUPPLEMENTARY NOTES 



12. SPONSORING Ml LI T ARY ACTIVITY 



Naval Postgraduate School 
Monterey, California 93940 



13. A8STR AC T 



General Purpose Graphic Language (GPGL) is an interactive 
language which is intended for both two-dimensional and three- 
dimensional displays. The thesis contains a survey of the 
attributes and capabilities of an interactive general purpose 
graphic language. The more popular general purpose graphic 
languages are compared and the results included. The system 
and user-defined functions (including the construction of user- 
defined functions) of GPGL are explained. The implementation 
of a subset of GPGL at the Naval Postgraduate School on an 
Adage AGT-10 graphics terminal is described. The main purpose 
of implementing a selected subset of functions from GPGL is 
to examine the tri-level hierarchy established within the com- 
ponents of the graphical display; the manner in which this 
hierarchy is implemented is addressed in the thesis. 



DD ,r;..1473 

S/N 0101 -807-681 1 



(PAGE 1) 



116 



UNCLASSIFIED 



Security Classification 



i-31408 



UNCLASSIFIED 



Security Classification 



KEY WO R OS 



ROLE 



Computer graphics 
Graphics language 
Interactive graphics 
Graphical language 
Interaction 
Graphics 



D. F r\,1473 <BACK 

&' 01 -807-682 t 



117 



UNCLASSIFIED 



Security Classification 



A- 31 409 



Thesis 

B2885 

c.l 



133316 



Beans 

GPGL: a model 
active, general 
pose graphic 



33 AUG 86 



inter- 
pur- 
language. 

31775 




Thes is 

B2885 Beans 

c.l GPGL: a model inter- 
active, general pur- 
pose graphic language. 



133316 





3 2768 002 12883 7 

DUDLEY KNOX LIBRARY